高德开发者论坛

标题: map.routePath 室内路径规划,调用没反应? [打印本页]

作者: amapgQD8dmn7    时间: 2016-12-28 15:59
标题: map.routePath 室内路径规划,调用没反应?

我想对原有的规划功能上修改一下。于是在 map 初始化后对 DOM 进行操作。

大概思路是在地图上先点击一个地点作为起始地点(或者是倒数第二次点击),记录为 routePath的起始点参数。用的是map.on('click');



同样还有一个用来记录目的地的坐标的函数。用的是 map.on('shopclick facilityclick)
然后把原先已经生成的去那里图标 ,删除,在添加一个一样的,然后在新添加的标签元素添加 onclick 事件。
这个新添加的击事件就是用来调用 routePath。 问题是在调用 routePath 后,回调的成功函数信息会在控制栏里正确输出。
最后贴一下代码。
map.once('mapready',function() {
     var stopSF = {},startUG = {},place= [],stopplace = [];
     map.on('click',clickSomeWhere);
     function clickSomeWhere(e) {
             place.push(e.latlng.lat);
             place.push(e.latlng.lng);
             if (place.length>2){
                 startUG.x = place[place.length - 4];
                 startUG.y = place[place.length - 3];
                 startUG.floor = map.getFloor();
             }else {
                 startUG.x = place[1];
                 startUG.y = place[0];
                 startUG.floor = map.getFloor();
             }
             return startUG;
     }
     map.on('shopclick facilityclick ',getTheMark);
     function getTheMark() {
         setTimeout(function(){
             if (document.querySelector('span.c-d-popimg')!=null)
             {
                 const gosButton = document.querySelector('span.c-d-popimg');
                 gosButton.remove();
             }
             var poptitle = document.querySelector('div.c-d-popdiv');
             var spanimg = document.createElement('span');
             spanimg.setAttribute('class','ss');
             spanimg.innerHTML = '<img title="\u53bb\u8fd9\u91cc" src="" >'
             poptitle.appendChild(spanimg);
             spanimg.onclick = function () {
                 function sucessback() {
                     console.log('ok');
                 }
                 function errback() {
                     console.log('error');
                 }
                 if (place.length<=2){
                     alert('please choose a place');
                 }
                 map.routePath(startUG,stopSF,sucessback,errback,{showTip:false});
             };
         },200);
     }
     map.on('shopclick facilityclick',clickSomeShop);
     function clickSomeShop(e) {
         const shopx = (e[["centroid"][0]][0]);
         stopplace.push(shopx);
         const shopy = (e[["centroid"][0]][1]);
         stopplace.push(shopy);
         stopSF.x = (stopplace[stopplace.length-2]);
         stopSF.y = (stopplace[stopplace.length-1]);
         stopSF.floor = map.getFloor();
         return stopSF;
     }

});


作者: amapgQD8dmn7    时间: 2016-12-28 16:48
是我自己的代码问题。起点坐标获取不正确。这个要怎么删除帖子啊

作者: uuWindy    时间: 2017-1-13 15:10
陈楠川 发表于 2016-12-28 16:48
是我自己的代码问题。起点坐标获取不正确。这个要怎么删除帖子啊

您好,非常感谢您对高德室内地图的关注。
不用删除帖子,我直接设置您的问题为已经解决就可以了。
再次感谢。




欢迎光临 高德开发者论坛 (https://lbsbbs.amap.com/) Powered by Discuz! X3.2