uniapp 微信小程序 腾讯位置服务路线规划插件的使用

814 阅读2分钟

微信小程序使用插件官方文档developers.weixin.qq.com/miniprogram…

uniapp项目的manifest.json文件:

"permission" : {  
          "scope.userLocation": {  
            "desc": "你的位置信息将用于小程序定位"  
          }  
        },  
        "plugins" : {
            "routePlan" : {
                "version" : "1.0.19",
                "provider" : "wx50b5593e81dd937a"
            }
        }

实际页面中使用的代码模板:

let plugin = requirePlugin('routePlan');  
        let key = 'xxx';  //使用在腾讯位置服务申请的key  
        let referer = 'xx';   //调用插件的app的名称  
        let endPoint = JSON.stringify({  //终点  
          'name': '北京西站',  
          'latitude': 39.894806,  
          'longitude': 116.321592  
        });  
        wx.navigateTo({  
          url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint  
        });

实际案例:

toNavigation(position, positionAddress) {
// positionAddress 为地理位置名称,比如: "北京市东城区正义路2号"
	const [latitude,longitude] = position.split(',')
	// TODO:暂时使用manifest.js中的mapkey
	let mapKey="3YRBZ-3NO3S-OALOT-6SDQM-23SQ6-XXXXX";
	let plugin = requirePlugin('routePlan');
	let key = mapKey;  //使用在腾讯位置服务申请的key
	let referer = '测试demo';   //调用插件的app的名称
	let endPoint = JSON.stringify({  //终点
	    name:  positionAddress,
	    latitude: parseFloat(latitude),
	    longitude: parseFloat(longitude),
	});
	// 1.以下案例为用户的真实定位到目标点的路线规划
	wx.navigateTo({
	    url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint
	});
	// 2.以下案例为起始点到目标点的路线规划(startPoint为起点, 如果不传起点参数,则起点默认当前用户的真实定位)
	wx.navigateTo({
		url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint+ '&startPoint=' + startPoint+'&navigation=1', // navigation值为1时,开启驾车导航功能;默认不开启此功能
	});

},

腾讯地图位置服务路线规划插件官方文档
lbs.qq.com/miniProgram…

如果页面提示:“GPS信号弱,请稍后重试”或者开发者工具提示:“XX方案规划失败 Error: GPS信号弱,请稍后再试”,原因在于:

当前小程序频繁调用wx.getLocation接口会导致用户手机电量消耗较快,请开发者改为使用持续定位接口wx.onLocationChange,该接口会固定频率回调,使用效果与跟频繁调用getLocation一致。

从基础库2.17.0版本起(预计发布时间2021.4.9),将对getLocation接口增加频率限制,包括:

在开发版或体验版中,30秒内调用getLocation,仅第一次有效,剩余返回fail。

正式版中,为保证小程序正常运行同时不过度消耗用户电量,一定时间内(根据设备情况判断)调用getLocation,仅第一次会返回实时定位信息,剩余返回与第一次定位相同的信息。

未做好兼容调整可能会影响用户体验,请开发者尽快适配。

具体请参考社区公告https://developers.weixin.qq.com/community/develop/doc/000aee91a98d206bc6dbe722b51801