相关需求
多个地点需要配送货物,希望线路规划,制定最优配送路线,减少配送时间。 百度地图支持,仍需要在百度地图app中点击添加途径点,再点击智能规划才能实现线路规划 综合比较,调起百度地图app较为方便实现此方法
调用百度地图app
async goMap() {
let isopenLocationMap = await this.openLocationMap()
if (isopenLocationMap == false) {
showUToast(this, '打开地图失败');
}
},
openLocationMap(name){
let newMAPjSON = this.newMAPjSON
if (plus.os.name == "Android") {
//判断是安卓端
plus.nativeUI.actionSheet({//选择菜单
title: "选择地图应用",
cancel: "取消",
buttons: [{title: "百度地图"}]
}, function(e) {
switch (e.index) {
case 1:
url = `baidumap://map/direction?coord_type=bd09ll&src=andr.baidu.openAPIdemo&origin=name:七点|latlng:39.98871,116.43555&destination=name:八点|latlng:31.3861780,120.6515555&mode=driving&viaPoints={"viaPoints":[{"name":"配送","lng":120.6500660,"lat":31.2994580}]}`
break;
default:
break;
}
if (url != "") {
url = encodeURI(url);
plus.runtime.openURL(url, function(e) { //调起手机APP应用
plus.nativeUI.alert("本机未安装指定的地图应用");
});
}
})
}else{
// iOS上获取本机是否安装了百度高德地图,需要在manifest里配置
// 在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加
//(如urlschemewhitelist:["iosamap","baidumap"])
plus.nativeUI.actionSheet({
title: "选择地图应用",
cancel: "取消",
buttons: [{title: "百度地图"}]
}, function(e) {
switch (e.index) {
case 1:
url = `baidumap://map/marker?`;
break;
default:
break;
}
if (url != "") {
url = encodeURI(url);
plus.runtime.openURL(url, function(e) {
plus.nativeUI.alert("本机未安装指定的地图应用");
});
}
})
}
}
比较分析
uni-map
uniapp.dcloud.net.cn/component/m…
并没看到有支持线路规划的参数或方法
高德地图
ios与安卓的线路规划都不支持途径点: lbs.amap.com/api/amap-mo…
百度地图
安卓:驾车导航/路线规划支持途径点
缺点:viaPoints不在路线内,需要在app中点击添加途径点,再点击智能规划