t***@163.com
t***@163.com
  • 发布:2020-03-19 17:18
  • 更新:2023-03-18 09:49
  • 阅读:985

【报Bug】nvue中使用plus.maps.Search 返回的规划总距离与实际不符

分类:nvue

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

[步骤]
nvue中使用plus.maps.Search 返回的规划总距离与实际不符

this.map = uni.createMapContext("map",this);  
            this.plusMap = plus.maps.create('mapp', {  
                top:'100px',  
                left:'0px',  
                width: '100%',  
                height: '200px',  
                position: 'static'  
            });  
            var searchObj = new plus.maps.Search( this.plusMap );  
            var pot1 = new plus.maps.Point( 113.389561,23.11593 );  
            var pot2 = new plus.maps.Point( 113.269114,22.988374 )  
            var searchBol = searchObj.drivingSearch( pot1, "", pot2, "" );  
            searchObj.onRouteSearchComplete = ( state, result ) => {  
                console.log(result)  
                var polylines = [];  
                if ( state == 0 ) {  
                    if ( result.routeNumber <= 0 ) {  
                        // alert( "没有检索到结果" );  
                    } else{                       
                        polylines.push({  
                            points: result.getRoute(0).pointList,  
                            color: "#0000ff",  
                            arrowLine: true,  
                            width: 8,  
                        });  

                        this.polylines = [...polylines];  
                        console.log(polylines[0].points[0])  
                    }  

                } else {  
                    // alert( "检索失败" );  
                }  
            };

[结果]
返回的总距离只有1326米, 实际有30公里

"routeNumber": 1,
"routeList": [{
"UUID": "Route_350052760",
"startPoint": {
"longitude": 113.389565,
"latitude": 23.11593
},
"endPoint": {
"longitude": 113.26911,
"latitude": 22.988375
},
"pointCount": 24,
"pointList": [{
"longitude": 113.38959,
"latitude": 23.11598
},....... {
"longitude": 113.2705,
"latitude": 22.987768
}],
"distance": 1326,
"routeTip": "沿黄埔大道中向西行驶1.3千米向右前方行驶进入匝道"
}]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号]

windows 10

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
app

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
hbuildX

[编译模式说明:自定义组件模式?纯nvue模式?v3模式?]
V3

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]
393855204

2020-03-19 17:18 负责人:无 分享
已邀请:
阿怪1874

阿怪1874

求 dcloud官方的大佬们帮忙看一下。 用的是高德的SDK

        const map = new plus.maps.Map('map');  
        var searchObj = new plus.maps.Search(map);  
        searchObj.onRouteSearchComplete = function(state, result) {  
            console.log(result);    
            if (state == 0) {  
                if (result.routeNumber <= 0) {  
                    console.log('没有检索到结果');  
                }  
                for (var i = 0; i < result.routeNumber; i++) {  
                    console.log(result.getRoute(i));  
                    // map.addOverlay(result.getRoute(i));  
                    console.log('路线' + (i + 1) + '总距离:' + result.getRoute(i).distance + 'm');  
                }  
            } else {  
                console.log('检索失败');  
            }  
        };  
        let startPoint = new plus.maps.Point(113.03269, 23.002106); //  
        let endPoint = new plus.maps.Point(113.09867, 23.012519); //   
        searchObj.walkingSearch(startPoint, '佛山', endPoint, '佛山');

返回的 Route对象,distance 属性总距离只有第一段的距离,不是总距离

{
"UUID": "Route_252022434",
"startPoint": {
"longitude": 113.03269,
"latitude": 23.002106
},
"endPoint": {
"longitude": 113.09867,
"latitude": 23.01252
},
"pointCount": 53,
"pointList": [], / / pointList 里面也没有值
"distance": 872, // 只是第一小段的距离
"routeTip": "沿季华西路向东步行872米向左前方行走"
}

  • DCloud_Android_ST

    建议不要用代码片段 附件提供HXdemo项目

    2023-03-20 11:06

要回复问题请先登录注册