目前我主要在离线模式下开发 OSMDroid 地图。一切都很好,除了我试图使用 RoadManager 离线缓存路线。路线可以在线显示,但离线显示为直线,而不是在线时的路线。下面是道路管理器的代码,除了离线可以看到路线cn。如果你们中的任何人提供帮助,对我来说将是莫大的荣幸
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());
我想在缓存管理器中实现的代码
List<GeoPoint> roadPoints = roadOverlay.getPoints();
Log.d(TAG, "onCreate: road Points -> length:" + roadPoints.size());
CacheManager 但仅适用于地理点,无法将路点设置为参数
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);
}
});