由于安全限制问题,使用http协议访问定位API会导致定位失败。
开发者如遇到上述问题,请切换至https访问。
function UserLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(onSuccess, onError); } else { alert('您的浏览器不支持使用HTML 5来获取地理位置服务'); } //定位数据获取成功响应 function onSuccess(position) { let lng = position.coords.longitude, lat = position.coords.latitude; console.log('获取到了定位', { lng, lat }); } //定位数据获取失败响应 function onError(error) { console.log('未获取到定位', error); switch (error.code) { case error.PERMISSION_DENIED: // alert("您拒绝对获取地理位置的请求"); alert('浏览器不支持获取地理位置'); break; case error.POSITION_UNAVAILABLE: alert('位置信息是不可用的'); break; case error.TIMEOUT: alert('请求您的地理位置超时'); break; case error.UNKNOWN_ERROR: alert('未知错误'); break; } } }
优点:兼容性好
缺点:麻烦,需要注册账号,申请key
function UserLocation() { var geolocation = new qq.maps.Geolocation('腾讯地图keys', '腾讯地图projectName'); geolocation.getLocation(showPosition, showErr, { timeout: 8000 }); function showPosition(position) { //获取到国测局坐标-position console.log('获取到了定位', position.lng, position.lat); } function showErr() { alert('定位失败'); } }