uniapp调地图添加途经点实现线路规划

991 阅读1分钟

相关需求

多个地点需要配送货物,希望线路规划,制定最优配送路线,减少配送时间。 百度地图支持,仍需要在百度地图app中点击添加途径点,再点击智能规划才能实现线路规划 综合比较,调起百度地图app较为方便实现此方法

image.png

调用百度地图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… 并没看到有支持线路规划的参数或方法 image.png

高德地图

ios与安卓的线路规划都不支持途径点: lbs.amap.com/api/amap-mo…

image.png

image.png

百度地图

lbsyun.baidu.com/index.php?t…

安卓:驾车导航/路线规划支持途径点 缺点:viaPoints不在路线内,需要在app中点击添加途径点,再点击智能规划 image.png

腾讯地图

lbs.qq.com/webApi/uriV… 不支持