osmdroid - 离线地图,滚动缩放地图后不显示地图

时间:2014-08-17 13:23:46

标签: android maps offline osmdroid

我在离线地图中显示地图时遇到一些问题。我正在使用通过MOBAC下载的osmdroid + tile并在手机上推出。

我从特定区域下载瓷砖,我可以看到unzoomed地图,一切似乎都适合我。然后我缩放地图,看起来不错,但如果我滚动,那么我看到地图的卸载碎片。 这个屏幕应该显示我的意思。

未缩放:

enter image description here

放大:

enter image description here

滚动后放大:

enter image description here

这是我的代码:

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的屏幕

mobac screen

然后我点击创建图册按钮。

瓷砖的路径: SD卡\ osmdroid \ tiles \ MapQuest

tiles是rar文件,它是作为mobac

的输出创建的图集

2 个答案:

答案 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缩放上一个缩放级别以填充屏幕。这仅在您放大时发生,然后替换为该缩放级别的实际图块。最后一部分没有发生,因为它没有加载你的瓷砖。