微信服务号获取地理位置

微信服务号获取地理位置

首先引入以下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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值