현재 주로 오프라인 모드에서 OSMDroid 맵을 개발 중입니다. RoadManager를 사용하여 오프라인에서 경로를 캐싱하려고 시도하는 것을 제외하고는 모든 것이 정상입니다. 경로는 온라인으로 표시 될 수 있지만 오프라인의 경우 온라인 상태와 마찬가지로 경로가 아닌 직선으로 나타납니다. 아래는 도로 관리자를위한 코드이며, 오프라인을 제외하고는 경로 cn이 표시됩니다. U의 도움을 내가 캐시 관리자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을 경우 그것은 나에게 큰 영광이 될 것입니다 geopoints에 대해서만 매개 변수로 도로 점을 설정할 수 없습니다
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 파일을 가져올 때 파일을 오프라인으로 사용할 때 이미 경로를 저장하고 있기 때문에 어떻게해야합니까? 여기 내 코드 : – warabino
'KmlDocument kmlDocument = new 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