目前正在开发的OSMDroid地图主要是在离线模式下进行的。除了im试图使用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);
}
});发布于 2017-11-07 21:55:40
CacheManager是关于tiles的缓存。它不处理覆盖。
你必须自己实现这一点。对于标记和多边形(和多边形),使用KML并将结果存储在KML文件中可能是一个简单的解决方案。看看OSMBonusPack教程页面。
https://stackoverflow.com/questions/47151088
复制相似问题