我在离线地图中显示地图时遇到一些问题。我正在使用通过MOBAC下载的osmdroid + tile并在手机上推出。
我从特定区域下载瓷砖,我可以看到unzoomed地图,一切似乎都适合我。然后我缩放地图,看起来不错,但如果我滚动,那么我看到地图的卸载碎片。 这个屏幕应该显示我的意思。
未缩放:
放大:
滚动后放大:
这是我的代码:
public class OSMDroidMapActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
MapView mapView = new MapView(this,256);
//mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
setContentView(mapView);
// set initial zoom-level
mapView.getController().setZoom(15);
mapView.setMultiTouchControls(true);
mapView.setClickable(true);
mapView.getController().setCenter(new GeoPoint(54.178181,15.579021));
//keeps the mapView from loading online tiles using network connection.
mapView.setUseDataConnection(false);
mapView.setTileSource(TileSourceFactory.MAPQUESTOSM);
}
}
是否有任何选项可以强制视图再渲染一次或像这样渲染。这不是没有手机内存中的磁贴的问题,因为当我取消缩放地图然后缩放这个片段,你可以在“Zoomed after scroll:”屏幕后看到,地图显示正确。在我看来,这是因为当我缩放它时渲染地图的小片段。
我搜索了答案,大部分问题是关于地图没被表示的情况(瓷砖的问题)。我发现了this的问题,但更改jar文件的版本只会导致地图出现更多问题。
编辑: 附加信息: 对于osmdroid我正在使用这个lib jar文件:osmdroid-android-4.2.jar,这里是来自MOBAC的屏幕
然后我点击创建图册按钮。
瓷砖的路径: SD卡\ osmdroid \ tiles \ MapQuest
tiles是rar文件,它是作为mobac
的输出创建的图集答案 0 :(得分:1)
从osmdroid 4.2开始,MapQuestOSM tile源的默认格式为" jpg"。所以你没有必要转换到png。 编辑 - 这可能是您的问题的一部分。 请参阅此帖:Download maps for osmdroid
你有SD卡\ osmdroid \ tiles \ MapQuest中的子目录,还是这个目录完全是空的?如果它不为空,则显示的图块可能来自此缓存,而不是来自您的zip文件。这可以解释行为(根本不使用zip文件,可用时使用的缓存切片)。要100%确定:如果它不为空,请将其删除。
您是否还可以在设备上准确指定MOBAC zip文件的完整路径位置?
答案 1 :(得分:0)
zips和archives应该在/ sdcard / osmdroid /中(不在tiles目录中)。这是问题的一部分。
“放大”图片是osmdroid缩放上一个缩放级别以填充屏幕。这仅在您放大时发生,然后替换为该缩放级别的实际图块。最后一部分没有发生,因为它没有加载你的瓷砖。