我将为我的论文做一个应用程序 . 我的论文是一个离线 Map ,其中包括地标/路线 . 我的论文 Map 仅适用于我在菲律宾的城市 . 我试图使用OSMDroid并且未能产生想要的结果 .
我想要的是(如果可能的话)我想在我的应用程序中发生这种情况:
-
安装APK
-
提示用户他/她想要使用哪个国家/地区
-
下载所选国家/地区以供离线使用 .
-
完成
这是我在OSMDroid中的代码
public class MainActivity extends Activity {
public static final GeoPoint myCity = new GeoPoint(14.54321,120.23451);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView mapView = (MapView) findViewById(R.id.map);
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
mapView.setMultiTouchControls(true);
mapView.setUseDataConnection(true);
mapView.setTileSource(TileSourceFactory.MAPQUESTOSM);
IMapController mapViewController = mapView.getController();
mapViewController.setZoom(13);
mapViewController.setCenter(myCity);
}
}
这就是我所做的:
-
我将Mobac用于 Map 的一部分
-
将其保存到我的内部手机内存(我将其命名为MapquestOSM)
-
运行程序
但是当我运行该程序时,它只是空白 .
我不介意再次使用OSMDroid,只要它会产生相同的结果 .
1 回答
我愿意打赌你没有做任何事情告诉osmdroid你想要一个不同的 Map 来源 . 这里有一些指导可以提供帮助
如果使用mobac创建zip文件,则源名称必须匹配 . 即如果你得到Mapnik磁贴,那么在osmdroid中使用Mapnik磁贴源 . Mapquest tiles,mapquest源码 .
zip文件在android中有一个上限,而不是使用sqlite(也是第一点) .
告诉您想要离线 Map 的MapView(setUseDataconnection(false);)
如果您仍有问题(并且正在使用zip文件),请尝试更改zip的内容以使第一个目录= Mapnik . 然后使用osmdroid中的默认tile源 .
直到我的PR合并(在运行时切换磁贴提供程序)和新版本切换,这才是你唯一的选择 .
编辑:osmdroid只在/ sdcard / osmdroid /中查找 Map 图块 .