osmdroid离线地图不加载瓷砖

Posted

技术标签:

【中文标题】osmdroid离线地图不加载瓷砖【英文标题】:osmdroid offline map not loading the tiles 【发布时间】:2016-10-11 05:41:09 【问题描述】:

我需要在 App 中查看离线磁贴

我已使用 “Mobile Atlas Creator 2.0.0 beta 1” 配置下载了磁贴,如下所示

磁贴 zip 文件位于

/mnt/sdcard/osmdriod/tiles.zip

MyActivity 代码如下

MapView mapView = new MapView(this); //constructor

    mapView.setTileSource(new XYTileSource("MapQuest", 0, 10, 256, ".png", new String[] ));

    mapView.setClickable(true);
    mapView.setBuiltInZoomControls(true);
    mapView.getController().setZoom(1); //set initial zoom-level, depends on your need
    mapView.getController().setCenter(new GeoPoint(52.516667, 13.383333)); //This point is in Enschede, Netherlands. You should select a point in your map or get it from user's location.
    mapView.setUseDataConnection(false); //keeps the mapView from loading online tiles using network connection.
    setContentView(mapView);

AndriodManifest.xml 拥有这些权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

但是地图上没有显示瓷砖

注意:

osmdroid 版本 编译'org.osmdroid:osmdroid-android:5.1@aar'

【问题讨论】:

【参考方案1】:

尝试打开您的 osm zip 文件并检查磁贴文件夹名称。此文件中的瓦片文件夹名称必须与 XYTileSource 构造函数的第一个参数相同。 如果文件夹的名称为“OpenStreetMap MapQuest”,例如你可能需要这样写:

mapView.setTileSource(new XYTileSource("OpenStreetMap MapQuest", 0, 10, 256, ".png", new String[] ));

【讨论】:

以上是关于osmdroid离线地图不加载瓷砖的主要内容,如果未能解决你的问题,请参考以下文章

谷歌离线地图:不是瓷砖而是javascript

在没有移动地图集创建器的情况下获取 osmdroid 的地图图块

下载特定的地图以缓存在 OSMDroid 中

使用 OSMDroid 实现的离线 StreetMap

下载 osmdroid 的地图

在 osmdroid 中将叠加添加到 MapView