【发布时间】:2020-02-05 12:48:27
【问题描述】:
我正在尝试使用 osmdroid 构建离线地图应用程序。
我正在使用从文件服务器生成的 PNG 格式的地图图块。它们以标准的 /x/y/z.png 文件/目录结构进行组织,并压缩为具有内部结构的 .zip 文件:/mapnik/x/y/z.png
.zip 文件的名称是 mapnik.zip(我理解这个文件的名称无关紧要)。
我通过在 Android Studio 中构建我的 .apk 来安装它。
我尝试将 .zip 文件放在 /storage/emulated/0/osmdroid 和 /storage/emulated/0/osmdroid/tiles 中,这是 cache.db 和 cache.db-journal 文件所在的位置(此目录结构已经存在)。
当我运行应用程序时,它会运行,但会显示空白网格而不是地图。
如果我改变 map.setUseDataConnection(false);为(真)它通过互联网加载地图并显示它。
不幸的是,我需要它以独特的方式离线运行。
我从https://github.com/TizioFittizio/OsmDroidOfflineMap得到的代码
我的MainActivity如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView map = (MapView) findViewById(R.id.map);
map.setUseDataConnection(false);
map.setTileSource(TileSourceFactory.MAPNIK);
IMapController controller = map.getController();
GeoPoint startPoint = new GeoPoint(37.370925, -5.972684);
controller.setCenter(startPoint);
Marker startMarker = new Marker(map);
startMarker.setPosition(startPoint);
startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
map.getOverlays().add(startMarker);
controller.setZoom(8);
map.setMinZoomLevel(6);
map.setMaxZoomLevel(15);
有人知道我做错了什么吗?
或者,有没有其他人这样做过,你使用过 osmdroid 吗?如果没有,你用的是什么?
【问题讨论】:
标签: osmdroid