一、需求
微信小程序 需要点击并跳转第三方地图软件导航,并计算到目标位置距离
二、思路
思路:
1.接口返回需要有位置的经纬度,这个自行在后台编辑获取
2.需要获取用户的位置权限
我这边使用的是uniapp,需要使用官方封装两个接口(主要是用1 2接口即可):
1.获取用户位置接口:uni.getLocation(OBJECT) | uni-app官网
2.打开位置接口:uni.openLocation(OBJECT) | uni-app官网
3.选择位置:uni.getLocation(OBJECT) | uni-app官网
三、具体实现:
1.需要在manifest.json 文件添加获取权限配置(使用源码视图方式打开):
代码
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
"requiredPrivateInfos": ["getLocation", "chooseLocation"]
2.具体代码
我这边方式是:getLocation放在onLoad方法里面 进入的时候让用户授权,授权后获得用户的经纬度以及地址信息。
ps:我这边使用当前的位置信息 是用来计算跟接口返回的目标位置信息的距离长度的
//得到用户位置经纬度 以及授权
getLocation(){
var that = this
uni.getLocation({
success(res) {
that.location.lat = res.latitude
that.location.log = res.longitude
}
,
fail(res){
console.info("fail" + res)
}
});
},
打开地图方法:必须先授权
this.dataInfo 对象是我后台返回的数据
//打开地图
openmap(){
uni.openLocation({
latitude: this.dataInfo.latitude,
longitude: this.dataInfo.longitude,
name: this.dataInfo.name,
address: this.dataInfo.position
})
},
效果展示:
微信开发工具效果
真机效果:
点击右下角跳转第三方