⑴ 如何在H5中调用百度地图APP和高德地图APP
看官方文档啊亲
具体例子如下
<a href="bdapp://map/navi?query=齐鲁软件园">安卓,网络驾车导航</a>
<a href="androidamap://navi?sourceApplication=appname&poiname=fangheng&lat=36.678528&lon=117.140208&dev=1&">安卓,高德驾车导航</a>
<a href="map://map/navi?query=齐鲁软件园">ios,网络驾车导航</a>
<a href="iosamap://navi?sourceApplication=appname&poiname=fangheng&lat=36.678528&lon=117.140208&dev=1&">ios,高德驾车导航</a>
安卓中,参数query和location二选一
在移动端浏览器是这样使用,如果要在app中使用是需要客户端支持的
⑵ android 开发 百度导航离线包 如何调用
最近公司要做个地图的app,android的,网络了一下,觉得还是网络的api比较好,然后就下载下来用了,就在想使用它的离线包的时候,不知道怎么搞,一开始就连网络提供的DOME也加载不上离线包。后来将BaiMapSdk删了,重新下载就行了
遇到的情况我的解决方法:首先要知道你的设备是支持高分辨率的还是低分辨率的,就是h还是l ,然后我们下载的离线压缩包里面的文件名为:
Bei_Jing_Shi_131.dat_svc,直接改成
beijing_131.dat,
然后放到 ,SD卡根目录下的BaiMapSdk的vmp的h文件夹下面,:BaiMapSdk/vmp/h/
第二种方法是,先将SD卡上的BaiMapSdk文件夹删掉,然后使用网络地图提供的DOME去下载离线地图,它会自动识别你的设备是h还是l,
如
BaiMapSdk/vmp/h/beijing_131.dat
或者
BaiMapSdk/vmp/l/beijing_131.dat
⑶ Android Kotlin 跳转第三方地图App进行导航(高德,百度,腾讯)
跳转第三方地图App进行导旅隐航
/**
* type
* 1 高德地图com.autonavi.minimap
* 2 网络地图com..BaiMap
* 3 腾讯地图com.tencent.map
*
*/
private fun goNavigation(type: Int,lat: Double, lon: Double,title:String, appName:String): Intent? {
when (type) {
1 ->{// sb 拼接跳转至高德地图需要的参数
银镇哗 val sb = StringBuilder("androidamap://route?sourceApplication=").append(appName)
sb.append("&dlat=").append(lat).append("&dlon=").append(lon).append("&dname=").append(title).append("&dev=0&m=0&t=0")
return Intent("android.intent.action.VIEW", Uri.parse(sb.toString())).setPackage("com.autonavi.minimap")
}
2 ->{// sb 拼接跳转至网络地图需要的参数
val sb = StringBuilder("map://map/geocoder?")
sb.append("location=").append(lat).append(",").append(lon).append("&name=").append(title).append("&coord_type=gcj02")
return Intent().setData(Uri.parse(sb.toString())).setPackage("com..BaiMap")
}
else ->{// sb 拼接跳转至腾讯地图需要的参数
val sb = StringBuilder("qqmap://map/routeplan?type=drive&referer=").append(appName)
sb.append("&tocoord=").append(lat).append(",").append(lon).append("&to=").append(title)
return Intent( ).setData( Uri.parse(sb.toString()))
}
}
}
检测是否安装App
/**
* 检索是否有对应app
*/
fun isApp(packageName: String?): Boolean {
//获取packagemanager
val packageManager =activity?.packageManager
//获取所有已安装程序的包信息
val packageInfos = packageManager?.getInstalledPackages(0)
//用于存储所有已安装程序的包名
val packageNames: MutableList = ArrayList()
//从pinfo中将包名字逐一取出,压入pName list中
if (packageInfos !=null) {
for (iin packageInfos.indices) {
val packName =packageInfos[i].packageName
锋行 packageNames.add(packName)
}
}
//判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
return packageNames.contains(packageName)
}