微信小程序中我们可以使用wx.getLocation来获取当前的地理位置,但是把用户输入的地址转换为经纬度地址然后定位是小程序原生没有提供的,比如用户输入的地址需要定位然后导航过去的。
首先我们需要引入腾讯地图在微信小程序js SDK “qqmap-wx-jssdk.js” 文件可以下载引用,也可以使用npm安装
具体请参照这里:https://lbs.qq.com/qqmap_wx_jssdk/index.html
地址解析(根据地址获取经纬度):
var QQMapWX = require('../js/qqmap-wx-jssdk.js');
OR
var QQMapWX = require('qqmap-wx-jssdk')
qqmapsdk = new QQMapWX({
key: '申请的key' //必需,自己申请
})
// geoCoder 根据地址获取经纬度
qqmapsdk.geocoder({
address: “xxx地址” //需要转换为经纬度的地址
success: function (res) { //返回的数据里面有该地址的经纬度
console.log("qqmapsdk.geocoder 接口调用成功返回的回调", res)
let location = res.result.location //经纬度对象
// 使用微信内置地图查看位置
wx.openLocation({
type: 'gcj02', // 返回可以用于wx.openLocation的经纬度
latitude: location.lat,
longitude: location.lng,
scale: 18
})
},
fail: function (res) {
console.log("qqmapsdk.geocoder 接口调用失败返回的回调")
},
complete: function (res) {
// console.log(“complete”);
}
});
(逆地址解析)根据经纬度获取地址:
// 如果需要当前地址可使用getLocation获取坐标转换,也可以传入所需要解析的坐标
var qqmapsdk= new QQMapWX({
key: “自己申请的key” // 必填
});
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function (res) {
console.log("reverseGeocoder res地址结果对象", res.result)
},
fail: function (res) {
console.log("获取地址失败", failres);
},
complete: function (completeres) {
}
});
就酱紫~~
详情参照https://lbs.qq.com/qqmap_wx_jssdk/index.html, 腾讯LBS服务还提供了地点搜索,路线规划,距离计算等简洁使用方便的功能