修改日期 | 修改人 | 备注 |
2021-01-19 11:41:10[当前版本] | 陈婉 | 1.2 |
2021-01-19 11:40:34 | 陈婉 | 1.1 |
2021-01-19 11:39:47 | 陈婉 | 1.0 |
var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function(r) { if (this.getStatus() == BMAP_STATUS_SUCCESS) { //位置经纬度 nowPointLng = r.point.lng; nowPointLat = r.point.lat; point = new BMap.Point(r.point.lng, r.point.lat); ...... } else { alert('failed' + this.getStatus()); } }, { enableHighAccuracy: true })
使用H5的api获取GPS坐标,把得到的结果用百度的转换坐标的api去转换一下
getLocation(); // H5获取当前位置 function getLocation(){ if (navigator.geolocation){ navigator.geolocation.getCurrentPosition(showPosition,showError); }else{ alert("浏览器不支持地理定位。"); } } // 获取用户经纬度 function showPosition(position){ //GPS经纬度 let x = position.coords.latitude; let y = position.coords.longitude; var gpsPoint = new BMap.Point(y, x); setTimeout(function(){ var convertor = new BMap.Convertor(); var pointArr = []; pointArr.push(gpsPoint); convertor.translate(pointArr, 1, 5, translateCallback) }, 1000); } // 将GPD经纬度转为百度地图经纬度 function translateCallback(data){ point = data.points[0]; nowPointLng = data.points[0].lng; nowPointLat = data.points[0].lat; initMap(); } // 报错信息 function showError(error){ switch(error.code) { case error.PERMISSION_DENIED: alert("定位失败,用户拒绝请求地理定位"); break; case error.POSITION_UNAVAILABLE: alert("定位失败,位置信息是不可用"); break; case error.TIMEOUT: alert("定位失败,请求获取用户位置超时"); break; case error.UNKNOWN_ERROR: alert("定位失败,定位系统失效"); break; } }
转换的方法不能立即执行需延迟加载