首页 文章

Android Studio离线 Map /导航

提问于
浏览
0

我将为我的论文做一个应用程序 . 我的论文是一个离线 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 回答

  • 0

    我愿意打赌你没有做任何事情告诉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 图块 .

相关问题