您好,欢迎来到乐娱网。
搜索
您的当前位置:首页JavaScript微信定位功能实现方法

JavaScript微信定位功能实现方法

来源:乐娱网


分享下微信是如何定位的:

本文主要讲解如何利用微信定位,如何将定位到的经纬度转换为百度地图对应的经纬度,以及处理定位失败、取消及错误时的默认做法。

//获取地理位置信息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);//将经纬度传入到要运用的函数中
 });
 
 });
 }
 });
 }

以上代码,如果可以定位到就用定位到的真正的经纬度,再转换成百度地图对应的经纬度,如果定位失败或者是点击取消或者发生错误,则默认定位到西湖的经纬度。

Copyright © 2019- lxnj.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务