第一次写,,,
1、适用于安卓?or ios?(app端,小程序没测试)
2、注意点:
map组件的?@markertap?事件,并且?markers?里面的每一项必须要有id,用于区分标注的点和性能优化
3、@markertap这个事件可以拿到market的id,与标注点数组的id相比较就可以拿到标注点的经纬度,至于怎么用可以看文档(uniapp-map组件文档)
4、代码块
@markertap这个事件可以拿到market的id,与标注点数组的id相比较就可以拿到标注点的经纬度,至于怎么用可以看文档
//调用打开地图(需经度纬度和地址名称,地址名称是为了地图展示搜索)
//经度纬度必须要,地图会根据这个进行定位导航
this.toMapAPP(latitude,longitude,name)
//必须授权定位,且选择地图时会提示是否安装了地图app
openMapAPP(latitude,longitude,name){ //打开第三方地图
let url = "";
if (plus.os.name == "Android") {//安卓端
plus.nativeUI.actionSheet({//选择地图
title: "选择地图",
cancel: "取消",
buttons: [{title: "腾讯地图"},{title: "百度地图"}, {title: "高德地图"}]
}, function(e) {
switch (e.index) {
//下面是拼接url,不同系统以及不同地图都有不同的拼接字段
case 1:
//注意referer=xxx的xxx替换成你在腾讯地图开发平台申请的key
url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
break;
//默认支持coord_type=gcj02
case 2:
url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&coord_type=gcj02&src=andr.baidu.openAPIdemo`;
break;
case 3:
url = `androidamap://viewMap?sourceApplication=appname&poiname=${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里配置。我的app暂时只支持高德地图(其他的地图会有很大偏差)
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;
//默认支持coord_type=gcj02
case 2:
url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&content=${name}&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
break;
case 3:
url = `iosamap://viewMap?sourceApplication=applicationName&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
break;
default:
break;
}
if (url != "") {
url = encodeURI(url);
plus.runtime.openURL(url, function(e) {
plus.nativeUI.alert("未安装指定的地图应用请前往appstore安装");
});
}
})
}
},
|