WeChat 포지셔닝 수행 방법 공유:
이 글에서는 주로 WeChat 포지셔닝 사용 방법, 포지셔닝된 경도와 위도를 바이두 지도의 해당 경도와 위도로 변환하는 방법, 포지셔닝 실패를 처리하는 방법에 대해 설명합니다. , 취소 및 오류 기본값 연습.
//获取地理位置信息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);//将经纬度传入到要运用的函数中 }); }); } }); }
위 코드의 위치 지정이 가능한 경우 해당 위치의 실제 경도, 위도를 사용하여 해당 위치의 경도, 위도로 변환합니다. 바이두 지도 위치 지정에 실패하거나 취소를 클릭하거나 오류가 발생하면 기본적으로 서호의 경도와 위도로 설정됩니다.