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);//将经纬度传入到要运用的<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>中
    } else {
    //下面两行是默认定位到西湖的经纬度
     lng = 120.141375;
     lat = 30.257806;
     toDoFunction(lng,lat);//将经纬度传入到要运用的<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>中
    }
   }

  },//取消定位
  cancel: function () {
  //下面两行是默认定位到西湖的经纬度
   var lng = 120.141375;
   var lat = 30.257806;
   toDoFunction(lng,lat);//将经纬度传入到要运用的<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>中
  },//定位失败
  fail: function () {
  //下面两行是默认定位到西湖的经纬度
   var lng = 120.141375;
   var lat = 30.257806;
   toDoFunction(lng,lat);//将经纬度传入到要运用的<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>中
  }

 });
 //定位发生<a href="/tag/cuowu/" target="_blank" class="keywords">错误</a>
 wx.error(function () {
 //下面两行是默认定位到西湖的经纬度
  var lng = 120.141375;
  var lat = 30.257806;
  toDoFunction(lng,lat);//将经纬度传入到要运用的<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>中
 });

});

}
});
}

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的JavaScript相关文章