在之前的调用百度地图API的总结中获取当前位置信息我用的是 H5 ,其实微信也提供了获取用户地理位置的方法,现将这两种方法都贴出来,看情况选择使用。
一、H5 获取当前地理位置得到经纬度
//H5 获取当前位置经纬度var location_lon = '',location_lat = ''; //经度,纬度if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(function(position) { location_lon =position.coords.longitude; location_lat =position.coords.latitude; //alert('h5经度:'+location_lon);alert('h5纬度:'+location_lat);}); }else{ alert("您的设备不支持定位功能"); }
二、微信公众平台(地理位置)
微信有获取用户地理位置的接口,在 wx.config 中配置就可以用了:
wx.config({ debug: true, appId: '', //必填,公众号的唯一标识timestamp: , //必填,生成签名的时间戳nonceStr: '', //必填,生成签名的随机串signature: '',//必填,签名jsApiList: ['getLocation'] //必填,需要使用的JS接口列表});
获得权限后就可以直接使用 wx.getLocation() 方法获得用户的地理位置了:
wx.getLocation({ type: 'wgs84', //默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' success: function(res) {var latitude = res.latitude; //纬度,浮点数,范围为90 ~ -90var longitude = res.longitude; //经度,浮点数,范围为180 ~ -180。var speed = res.speed; //速度,以米/每秒计var accuracy = res.accuracy; //位置精度} });
三、地理位置配合地图展示
获得的经纬度可以使用百度地图或者高德地图展示,微信内置地图也可以查看位置:
wx.openLocation({ latitude: 0, //纬度,浮点数,范围为90 ~ -90 longitude: 0, //经度,浮点数,范围为180 ~ -180。 name: '', //位置名 address: '', //地址详情说明 scale: 1, //地图缩放级别,整形值,范围从1~28。默认为最大 infoUrl: '' //在查看位置界面底部显示的超链接,可点击跳转});