增加点击事件,调用下面方法
openMap(){
console.log("导航");
const StationName=this.data.StationInfo[0].StationName;
const LocationX_Gaode=this.data.StationInfo[0].LocationX_Gaode;
const LocationY_Gaode=this.data.StationInfo[0].LocationY_Gaode;
var url = "";
if (plus.os.name=="Android") {
var hasBaiduMap = plus.runtime.isApplicationExist({pname:'com.baidu.BaiduMap',action:'baidumap://'});
var hasAmap = plus.runtime.isApplicationExist({pname:'com.autonavi.minimap',action:'androidamap://'});
//var urlBaiduMap = "baidumap://map/marker?location=39.968789,116.347247&title=DCloud&src=Hello%20uni-app";
//var urlAmap = "androidamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0"
var urlBaiduMap = `baidumap://map/marker?location=${LocationY_Gaode},${LocationX_Gaode}&title=${encodeURIComponent(StationName)}&src=Hello%20uni-app`;
var urlAmap = `androidamap://viewMap?sourceApplication=Hello%20uni-app&poiname=${encodeURIComponent(StationName)}&lat=${LocationY_Gaode}&lon=${LocationX_Gaode}&dev=0`
if (hasAmap && hasBaiduMap) {
plus.nativeUI.actionSheet({title:"选择地图应用",cancel:"取消",buttons:[{title:"百度地图"},{title:"高德地图"}]}, function(e){
switch (e.index){
case 1:
plus.runtime.openURL(urlBaiduMap);
break;
case 2:
plus.runtime.openURL(urlAmap);
break;
}
})
}
else if (hasAmap) {
plus.runtime.openURL(urlAmap);
}
else if (hasBaiduMap) {
plus.runtime.openURL(urlBaiduMap);
}
else{
//url = "geo:39.96310,116.340698?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82";
url = `geo:${LocationY_Gaode},${LocationX_Gaode}?q=${encodeURIComponent(StationName)}`;
plus.runtime.openURL(url); //如果是国外应用,应该优先使用这个,会启动google地图。这个接口不能统一坐标系,进入百度地图时会有偏差
}
} else{
// iOS上获取本机是否安装了百度高德地图,需要在manifest里配置,在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加(如urlschemewhitelist:["iosamap","baidumap"])
plus.nativeUI.actionSheet({title:"选择地图应用",cancel:"取消",buttons:[{title:"Apple地图"},{title:"百度地图"},{title:"高德地图"}]}, function(e){
console.log("e.index: " + e.index);
switch (e.index){
case 1:
//url = "http://maps.apple.com/?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82&ll=39.96310,116.340698&spn=0.008766,0.019441";
url = `http://maps.apple.com/?q=${encodeURIComponent(StationName)}&ll=${LocationY_Gaode},${LocationX_Gaode}&spn=0.008766,0.019441`;
break;
case 2:
//url = "baidumap://map/marker?location=39.968789,116.347247&title=DCloud&src=Hello%20uni-app";
url = `baidumap://map/marker?location=${LocationY_Gaode},${LocationX_Gaode}&title=${encodeURIComponent(StationName)}&src=Hello%20uni-app`;
break;
case 3:
//url = "iosamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0";
url = `iosamap://viewMap?sourceApplication=Hello%20uni-app&poiname=${encodeURIComponent(StationName)}&lat=${LocationY_Gaode},${LocationX_Gaode}&dev=0`;
break;
default:
break;
}
if (url!="") {
plus.runtime.openURL( url, function( e ) {
plus.nativeUI.alert("本机未安装指定的地图应用");
});
}
})
}
},