derzeit im Entwickeln einer OSMDroid-Karte hauptsächlich im Offline-Modus. Alles ist in Ordnung, außer dass ich versuche, die Route offline mit RoadManager zu cachen. Die Route kann online angezeigt werden, aber offline erscheint sie als gerade Linie, nicht wie im Online-Modus. Unten ist der Code für den Straßenmanager, die Route kann nur offline gesehen werden. Es wäre eine große Ehre für mich, wenn jeder von u Hilfe cnRoadOverlay im CacheManager OSMDroid
Roadmanager Code
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());
Codes, die i
List<GeoPoint> roadPoints = roadOverlay.getPoints();
Log.d(TAG, "onCreate: road Points -> length:" + roadPoints.size());
Cachemanager in Cache-Manager implementiert werden soll aber nur für Geopoints, nicht in der Lage, Straßenpunkte als Parameter zu setzen
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);
}
});
bedeutet es, dass ich KML verwenden muss, damit die Route offline angezeigt werden kann? – warabino
hi, jetzt kann ich die kml-Datei speichern, aber wie soll ich die KML-Datei importieren, damit die Datei bei der Offlinedatei verwendet wird, weil sie die Route bereits speichert. Hier ist mein Code: – warabino
'KmlDocument kmlDocument = new KmlDocument(); kmlDocument.mKmlRoot.addOverlay (roadOverlay, kmlDocument); Datei localFile = kmlDocument.getDefaultPathForAndroid ("my_route.kml"); kmlDocument.saveAsKML (localFile); kmlDocument.parseKMLFile (localFile); FolderOverlay kmlOverlay = (FolderOverlay) kmlDocument.mKmlRoot.buildOverlay (Karte, null, null, kmlDocument); map.getOverlays(). Add (kmlOverlay); BoundingBox bb = kmlDocument.mKmlRoot.getBoundingBox(); map.getController(). SetCenter (bb.getCenter()); ' – warabino