一.前情提要
我们已经实现了如上视觉效果,接下来尝试实现点击“去这里”,调用导航插件,进行目前位置到目标景点的导航。
二.方法编写
具体思路为点击按钮时触发回调函数,直接调用导航插件,会弹出一个导航页面,细节如下:
首先要初始化参数,设置导航模式mode为步行walking,key是在腾讯位置服务申请的key,并设置起点和终点,然后用wx.navigateTo调用插件,实现导航。
key的申请参考:山东大学创新实训周报(2)----腾讯地图的引入和介绍
popupButtonClick:function(){
this.setData({
"popup.popupShow":false
})
let mode = "walking";
let key = config.mapSubKey; //使用在腾讯位置服务申请的key
let referer = '泉哥带路'; //调用插件的app的名称
let endPoint = JSON.stringify({ //终点
'name': this.data.popup.title,
'latitude':this.data.popup.latitude,
'longitude':this.data.popup.longitude
});
let startPoint = JSON.stringify({ //起点
'name': "我所在的位置",
'latitude':config.center_latitude,
'longitude':config.center_longitude
});
wx.navigateTo({
url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer
+ '&endPoint=' + endPoint + '&startPoint=' + startPoint + '&mode=' + mode
});
},
三.问题解决
1.官方给的插件接入方法搜索不到路线规划
插件不同于普通接口,需要专门注册,这部分的开发文档写的比较差劲,文档里给出的注册方法无法实现接入,在这里给出效果等价的注册方法:
1.进入微信服务市场
2.找到路线规划
3.添加插件,授权给我们的小程序
2.提示此key今日已达限额
我又一次遇到了这个问题,经过一段时间的问题定位,发现还是账户额度的分配问题,但是控制台并没有提示是哪个服务额度不够,于是我干脆将所有服务都进行了额度分配,分配后不再报此错。
额度分配参考:山东大学创新实训周报(4)----腾讯位置服务距离计算