微信服务号获取地理位置
首先引入以下script
<script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
//https调用百度api
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=iT46LDMO8w4i3k6blFarL7Me9RC2yQ1r&s=1"></script>
//http调用百度api
<script type="text/javascript" src="http://api.map.baidu.com/api?type=quick&ak=iT46LDMO8w4i3k6blFarL7Me9RC2yQ1r&v=1.0">
//初始化
wx.config({
debug: false,//开启后每次调用可以看返回结果
appId: appid, // 必填,企业号的唯一标识,此处填写企业号corpid
timestamp: timestamp, // 必填,生成签名的时间戳
nonceStr: nonceStr, // 必填,生成签名的随机串
signature: signature, // 必填,签名,见附录1
jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
//获取经纬度,通过百度地图api转成地址
wx.ready(function(){//进入页面时加载当前位置
wx.getLocation({
type: 'wgs84',
success: function (res) {
var latitude = res.latitude;
var longitude = res.longitude;
if(longitude && latitude){
//转换为百度坐标
var gpsPoint=new BMap.Point(longitude, latitude);
var addressPoint;
var convertor = new BMap.Convertor();
var pointArr = [];
pointArr.push(gpsPoint);
convertor.translate(pointArr, 1, 5, function(data){
if(data.status!=0){
alert('根据当前经纬度获取地址信息失败,请刷新重试。');
return;
}
addressPoint = data.points[0];
$("#latitude").val(addressPoint.lat);
$("#longitude").val(addressPoint.lng);
//获取地址
var geoc = new BMap.Geocoder();
geoc.getLocation(addressPoint, function(rs){
if(rs && rs.surroundingPois[0]){
var localResultPoi =rs.surroundingPois[0];
$("#locationAddress").val(localResultPoi.address+localResultPoi.title);
}else if(rs){
$("#locationAddress").val(rs.address);
}else{
alert('根据当前经纬度获取地址信息失败,请刷新重试。');
}
});
});
}else{
alert('获取经纬度失败,请开启手机定位与允许应用获取手机gps后刷新页面重试。');
}
},fail:function(res){
alert('获取经纬度失败,请开启手机定位与允许应用获取手机gps后刷新页面重试。');
console.info(res);
},cancel: function (res) {
alert('获取经纬度失败,请开启手机定位与允许应用获取手机gps后刷新页面重试。');
console.info(res);
}
});
});
微信开发主要需要注意的是jsapi_ticket和jsapiToken,失效时间是7200s,因为每天调用次数有限,所以需要自己做缓存,没有过期则继续使用。
获取token:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential
获取ticket
https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi
再获取signature,在js中就可以初始化。
ps:微信开发工具包:https://github.com/wechat-group/weixin-java-tools