H5 gps 获取地址
问题:用户注册的时候,需要根据gps 获取到地址
手机端下 H5 是支持 直接获取gps的,但要求 域名是 https的。
因所以通过 微信网页接口获取到的经纬度,然后转换为百度的坐标,再通过百度jsapi 获取到相应的地址。
wx.getLocation({ type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' success: function (res) { var longitude = res.longitude ; var latitude = res.latitude ; wgPoint = new BMap.Point(longitude,latitude) var convertor = new BMap.Convertor(); var pointArr = []; pointArr.push(wgPoint); convertor.translate(pointArr, 1, 5,function(data){ if(data.status === 0) { var geoc = new BMap.Geocoder(); var point = new BMap.Point(data.points[0].lng,data.points[0].lat); geoc.getLocation(point, function(result){ if (result){ $('#areas').val(result.addressComponents.province + " " +result.addressComponents.city+ " "+ result.addressComponents.district); var address = result.addressComponents.street+result.addressComponents.streetNumber+result.addressComponents.streetNumber+result.surroundingPois[0].title; $('#address').val(address); } },{'poiRadius':10}); } }); }, cancel: function (res) { FoxUI.toast.show('请点击自动获取您的地址!'); }, fail: function (res) { FoxUI.toast.show('您需要打开GPS'); }, });
转换坐标的时候,需要查看 from to 对应的值
http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition
从文档来看 google地图 不是用 WGS-84。我搜索百度,发现很多文档 提示,google 用的是 WGS-84,这是错误的,特此说明。
若文章对您有帮助,帮忙点个赞!
(微信扫码即可登录,无需注册)