現在、主にオフラインモードでOSMDroidマップを開発中です。 RoadManagerを使用してオフラインで経路をキャッシュしようとしている以外はすべて問題ありません。ルートはオンラインで表示することができますが、オフラインではオンラインのようなルートのラインではなく、直線として表示されます。以下は道路管理者向けのコードで、オフライン以外のルートcnを見ることができます。 Uの任意のiがキャッシュマネージャにCacheManagerのRoadOverlay OSMDroid
List<GeoPoint> roadPoints = roadOverlay.getPoints();
Log.d(TAG, "onCreate: road Points -> length:" + roadPoints.size());
のCacheManagerを実装することにしたい
RoadManagerコード
RoadManager roadManager = new MapQuestRoadManager("bOqEG6oonVKVMJGQj9GOVPBEvgcfUofu");
roadManager.addRequestOption("routeType=shortest");
Road road = roadManager.getRoad(geopoints);
Polyline roadOverlay = RoadManager.buildRoadOverlay(road);
map.getOverlays().add(roadOverlay);
List<GeoPoint> roadPoints = roadOverlay.getPoints();
Log.d(TAG, "onCreate: road Points -> length:" + roadPoints.size());
コードの助けがcnの場合、それは私にとって大きな名誉だろうジオポイントの場合にのみ、ロードポイントをパラメータとして設定できません
CacheManager cacheManager = new CacheManager(map);
cacheManager.downloadAreaAsyncNoUI(getApplicationContext(),geopoints, 10, 15, new CacheManager.CacheManagerCallback() {
public static final String TAG = "CacheManagerCallback";
@Override
public void onTaskComplete() {
Log.d(TAG, "onTaskComplete: ");
}
@Override
public void updateProgress(int progress, int currentZoomLevel, int zoomMin, int zoomMax) {
Log.d(TAG, "updateProgress: " + progress);
}
@Override
public void downloadStarted() {
Log.d(TAG, "downloadStarted: ");
}
@Override
public void setPossibleTilesInArea(int total) {
Log.d(TAG, "setPossibleTilesInArea: " + total);
}
@Override
public void onTaskFailed(int errors) {
Log.d(TAG, "onTaskFailed: " + errors);
}
});
これは、オフラインでルートcnを表示するためにKMLを使用する必要があることを意味しますか? – warabino
こんにちは、今は、kmlファイルを格納することができますが、どのように私はKMLファイルをインポートするので、ファイルが使用されているときに、それはすでにルートを保存bcause使用されます。ここに私のコード: – warabino
'KmlDocument kmlDocument =新しいKmlDocument(); kmlDocument.mKmlRoot.addOverlay(roadOverlay、kmlDocument); ファイルlocalFile = kmlDocument.getDefaultPathForAndroid( "my_route.kml"); kmlDocument.saveAsKML(localFile); kmlDocument.parseKMLFile(localFile); FolderOverlay kmlOverlay =(FolderOverlay)kmlDocument.mKmlRoot.buildOverlay(map、null、null、kmlDocument); map.getOverlays()。add(kmlOverlay); BoundingBox bb = kmlDocument.mKmlRoot.getBoundingBox(); map.getController()。setCenter(bb.getCenter()); ' – warabino