使用高德地图浏览器中获取当前位置时总是失败获取不到,有以下几个原因:
1、用户禁用了定位权限
2、定位超时,这时候可以将timeout设置的时间长一点,另外还有个别浏览器本身的定位接口就是黑洞(Chrome好像就是),完全没有回应,也会超时返回失败
3、部分套壳浏览器接入的定位服务在国外,有较大限制,失败率高
如果,对定位不要求精准度的,可以使用获取到当前城市的api实现,
如图:
let _this = this
AMap.plugin('AMap.Geolocation', function () {
var geolocation = new AMap.Geolocation({
// 是否使用高精度定位,默认:true
enableHighAccuracy: true,
// 设置定位超时时间,默认:无穷大
timeout: 10000,
// 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
buttonOffset: new AMap.Pixel(10, 20),
// 定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
zoomToAccuracy: true
})
geolocation.getCityInfo(function (status, result) {
if (status === 'complete') {
onComplete(result)
} else {
onError(result)
}
})
function onComplete (data) {
_this.center = data.center
// data是具体的定位信息
}
function onError (data) {
// 定位出错
}
})