由于安全限制问题,使用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('定位失败');
}
}