最近在项目中需要地图导航功能,但是导入第三方地图导航包的话,应用打出包后会很大,所以考虑到可以通过调用外部地图应用来解决,参考了微信打开外部地图的做法,有了下面的解决办法:
原理
- 通过高德、百度、腾讯提供的Uri打开应用外部地图app.
高德、百度、腾讯官方uri调起app文档传送门
- 高德地图:
- 百度地图:
- 腾讯地图:
APP判断手机中是否安装地图
1. Android系统:请检测包名
- 腾讯 com.tencent.map
- 高德 com.autonavi.minimap
- 百度 com.baidu.BaiduMap
2. iOS系统:腾讯地图的URL Sheme 是qqmap:// ,直接调用系统的canOpenURL进行判断
- 百度地图:baidumap
- 高德地图:iosamap
- 腾讯地图:qqmap
需要注意的地方
-1.由于自己应用中集成的是高德地图,用的是GCJ-02座标系(火星座标系),所以当打开百度地图时需要进行座标转换,将火星座标系转换成百度座标系BD09。