Share how WeChat positioning is done:
This article mainly explains how to use WeChat positioning, how to convert the positioned longitude and latitude into the corresponding longitude and latitude of Baidu map, and the default approach to handling positioning failure, cancellation and error.
//获取地理位置信息start //封装成一个函数 function getPosition() { //用ajax请求 $.ajax({ url: "/wechat/jssdk",//请求地址 type: 'post',//post请求 dataType: 'json', contentType: "application/x-www-form-urlencoded; charset=utf-8", data: { 'url': location.href.split('#')[0]//将第一个#号前的地址传递 }, //请求成功的函数 success: function (data) { wx.config({ // debug: true, appId: data.data.appId, timestamp: data.data.timestamp, nonceStr: data.data.nonceStr, signature: data.data.signature, jsApiList: ['checkJsApi', 'getLocation'] }); wx.ready(function () { wx.getLocation({ //获得定位成功 success: function (res) { //这是微信返回的真正经纬度 var oldLat = res.latitude; // 纬度,浮点数,范围为90 ~ -90 var oldLng = res.longitude; // 经度,浮点数,范围为180 ~ -180。 /*下面是为了将获得的真正经纬度转换为对应的百度经纬度,因为是利用百度地图的经纬度去查询数据的,数据库中存的也是百度的经纬度*/ //创建一个百度地图的点 var customerPoint = new BMap.Point(oldLng, oldLat); // var convertor = new BMap.Convertor(); var pointArr = [];//创建一个数组 pointArr.push(customerPoint);//将刚才的点放进去 convertor.translate(pointArr, 1, 5, initMap); //转换坐标 function initMap(data) { if (data.status === 0) {//转换成功 var point = data.points[0];//得到后的点 var lng = point.lng;//获得转换后的经度 var lat = point.lat;//获得转换后的纬度 toDoFunction(lng, lat);//将经纬度传入到要运用的函数中 } else { //下面两行是默认定位到西湖的经纬度 lng = 120.141375; lat = 30.257806; toDoFunction(lng, lat);//将经纬度传入到要运用的函数中 } } }, //取消定位 cancel: function () { //下面两行是默认定位到西湖的经纬度 var lng = 120.141375; var lat = 30.257806; toDoFunction(lng, lat);//将经纬度传入到要运用的函数中 }, //定位失败 fail: function () { //下面两行是默认定位到西湖的经纬度 var lng = 120.141375; var lat = 30.257806; toDoFunction(lng, lat);//将经纬度传入到要运用的函数中 } }); //定位发生错误 wx.error(function () { //下面两行是默认定位到西湖的经纬度 var lng = 120.141375; var lat = 30.257806; toDoFunction(lng, lat);//将经纬度传入到要运用的函数中 }); }); } }); }
The above code, if it can be located, use the real longitude and latitude of the location, and then convert it to the longitude and latitude corresponding to the Baidu map. If the location fails or clicks to cancel or an error occurs, it will default to the longitude and latitude of West Lake. .