微信公众号获取用户地址授权并转换成详细地址

最近做一个公众号页面开发,需要获取用户地理位置信息,获取到经纬度后,找了很多地方都没找到腾讯地图将经纬度转换成具体位置的方法,所以就只能调用百度地图api转一次,现在将其中部分代码贴在上面,以便下次使用:

首先需要去百度api申请秘钥,链接:获取百度api秘钥

$.ajax({

method:"GET",

url:url,//替换网址,xxx根据自己jssdk文件位置修改

success:function(res) {

alert(res.code);

if(res.code==200){

//将签名转换为utf-8

wx.config({

debug:true,//调式模式,设置为ture后会直接在网页上弹出调试信息,用于排查问题

appId:res.data.appId,

timestamp:res.data.timestamp,

nonceStr:res.data.nonceStr,

signature:res.data.signature,

jsApiList: [//所有要调用的API都要加到这个列表中

'checkJsApi',

'openLocation',

'getLocation'

]

});

wx.ready(function() {

wx.checkJsApi({

jsApiList: [

'getLocation'

],

success:function(res) {

// alert(JSON.stringify(res));

// alert(JSON.stringify(res.checkResult.getLocation));

if(res.checkResult.getLocation==false) {

alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');

return;

}

}

});

wx.getLocation({

success:function(res) {

varlatitude=res.latitude;//纬度,浮点数,范围为90 ~ -90

varlongitude=res.longitude;//经度,浮点数,范围为180 ~ -180。

varspeed=res.speed;//速度,以米/每秒计

varaccuracy=res.accuracy;//位置精度

varlocation=latitude+','+longitude;

getBaiduLocation(longitude,latitude);

getAddrs(location);

//转换百度坐标

functiongetBaiduLocation(longitude,latitude) {

$.ajax({

type:"GET",

url:'http://api.map.baidu.com/geoconv/v1/?coords='+longitude+','+latitude+'&from=1&to=5&output=json&ak= 你的百度ak ',

dataType:'jsonp',

success:function(msg) {

try{

varresult=msg.result;

varlat=result[0].y;//纬度

varlng=result[0].x;//经度

navi(result[0]);//导航

}catch(e) {

alert(e.message);

}

}

});

};

//调用百度地图api执行地址逆编码

functiongetAddrs(jwd) {

$.ajax({

type:"GET",

url:'http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location='+jwd+'&output=json&pois=1&ak=你的百度ak',

dataType:'jsonp',

success:function(msg) {

//获取地址成功后的回调,我这里只需要获取省市区信息

if(msg.status==0){

varprovMsg=msg.result.addressComponent.province;

varcityMsg=msg.result.addressComponent.city;

varareaMsg=msg.result.addressComponent.district;

varpca=provMsg+'-'+cityMsg+'-'+areaMsg;

}

}

})

}

},

cancel:function(res) {

alert('用户拒绝授权获取地理位置');

}

});

});

wx.error(function(res) {

alert(res.errMsg);//打印错误消息。及把debug:false,设置为debug:ture就可以直接在网页上看到弹出的错误提示

});

}

}

});

你可能感兴趣的:(微信公众号获取用户地址授权并转换成详细地址)