Android Studio离线地图/导航

时间:2015-10-01 14:23:50

标签: java android-studio openstreetmap osmdroid

我将为我的论文做一个应用程序。我的论文是一个离线地图,其中包括地标/路线。我的论文地图仅适用于我在菲律宾的城市。我试图使用OSMDroid并且无法产生想要的结果。

我想要的是(如果可能的话)我想在我的应用中发生这种情况:

  1. 安装APK
  2. 提示用户他/她想要使用哪个国家/地区
  3. 下载所选国家/地区以供离线使用。
  4. 完成
  5. 这是我在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);
        }
    }
    

    这就是我所做的:

    1. 我将Mobac用于地图的一部分
    2. 将其保存到我的内部电话内存(我将其命名为MapquestOSM)
    3. 运行程序
    4. 但是当我运行该程序时,它只是空白 我不介意再次使用OSMDroid,只要它会产生相同的结果。

1 个答案:

答案 0 :(得分:0)

我愿意打赌你没有做任何事情告诉osmdroid你想要一个不同的地图来源。这里有一些指导帮助

  • 如果您使用mobac创建zip文件,则源名称必须匹配。即如果你得到Mapnik磁贴,那么在osmdroid中使用Mapnik磁贴源。 Mapquest tiles,mapquest source。
  • zip文件在android中有一个上限,而是使用sqlite(也是第一点)。
  • 告诉你想要离线地图的MapView(setUseDataconnection(false);)

如果您仍有问题(并且正在使用zip文件),请尝试更改zip的内容以使第一个目录= Mapnik。然后使用osmdroid中的默认tile源。

直到我的PR合并(在运行时切换磁贴提供程序)和新版本切换,这真的是你唯一的选择。

编辑:osmdroid只在/ sdcard / osmdroid /中查找地图图块。