您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 台州分类信息网,免费分类信息发布

JavaScript微信定位功能实现方法

2024/4/14 2:37:10发布41次查看
分享下微信是如何定位的:
本文主要讲解如何利用微信定位,如何将定位到的经纬度转换为百度地图对应的经纬度,以及处理定位失败、取消及错误时的默认做法。
//获取地理位置信息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);//将经纬度传入到要运用的函数中 }); }); } }); }
以上代码,如果可以定位到就用定位到的真正的经纬度,再转换成百度地图对应的经纬度,如果定位失败或者是点击取消或者发生错误,则默认定位到西湖的经纬度。
台州分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录