需求:
通过手机app显示地图,点击去导航调起高德、百度地图app;
找了其他大神的,但经纬度不准确问题困扰了好久,去地图开放平台查了下文档,完美解决~
methods: {
// 方法要传入需要标注地点的纬度latitude,经度longitude,名字name
toMapAPP(latitude, longitude, name) {
let url = "";
if (plus.os.name == "Android") { //判断是安卓端
plus.nativeUI.actionSheet({ //选择菜单
title: "选择地图应用",
cancel: "取消",
buttons: [{
title: "百度地图"
}, {
title: "高德地图"
}]
}, function(e) {
switch (e.index) {
//下面是拼接url,不同系统以及不同地图都有不同的拼接字段
case 1:
url =
// `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&coord_type=gcj02&src=andr.baidu.openAPIdemo`;
`baidumap://map/geocoder?src=andr.baidu.openAPIdemo&address=${name}"`;
break;
case 2:
url =
// `androidamap://viewMap?sourceApplication=appname&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=1`;
`androidamap://arroundpoi?sourceApplication=softname&keywords=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
break;
default:
break;
}
if (url != "") {
url = encodeURI(url);
//plus.runtime.openURL(url,function(e){})调起手机APP应用
plus.runtime.openURL(url, function(e) {
plus.nativeUI.alert("本机未安装指定的地图应用");
});
}
})
} else {
// iOS上获取本机是否安装了百度高德地图,需要在manifest里配置
// 在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加
//(如urlschemewhitelist:["iosamap","baidumap"])
plus.nativeUI.actionSheet({
title: "选择地图应用",
cancel: "取消",
buttons: [
// {
// title: "腾讯地图"
// },
{
title: "百度地图"
}, {
title: "高德地图"
}]
}, function(e) {
switch (e.index) {
// case 1:
// url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
// break;
case 1:
url =
`baidumap://map/geocoder?src=andr.baidu.openAPIdemo&address=${name}"`;
break;
case 2:
url =
`androidamap://arroundpoi?sourceApplication=softname&keywords=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
break;
default:
break;
}
if (url != "") {
url = encodeURI(url);
plus.runtime.openURL(url, function(e) {
plus.nativeUI.alert("本机未安装指定的地图应用");
});
}
})
}
}
}
在浏览器预览时,map组件不显示
在 manifest.json >H5 配置下 开启其中一个地图即可