高德地图api报错 Get geolocation timeout.Get ipLocation failed.

发布时间 2023-12-19 15:43:23作者: 爬坑之路任重而道远

使用了https 报错 Get geolocation timeout.Get ipLocation failed.

 

报错是定位超时,由于JSAPI 使用的是浏览器提供的定位服务,所以定位的准确度和成功率都会对浏览器有很大的依赖。由于Chrome在国内没有提供服务,因此使用Chrome定位服务的浏览器,比如:Chrome、火狐、安卓原生WebView等环境的原生定位通常都会定位失败;

建议更换下浏览器测试,推荐使用Edge 浏览器

 

不要怀疑自己 换浏览器就可以解决 Chrome有百分之5的失败率我就是

可以在失败的时候用百度地图再去定位一次

 openAMapLocation () {
      //加载地图,调用浏览器定位服务
      let map = new AMap.Map('map_div', {
        // resizeEnable: true, //是否监控地图容器尺寸变化
        // center: [lng, lat] //初始化地图中心点
      })
      map.plugin('AMap.Geolocation', () => {
        let geolocation = new AMap.Geolocation({})
        geolocation.getCurrentPosition((status, result) => {
         if (status == 'complete') {
            // 定位成功
          } else {
            console.log('高德定位失败:' + result.message)
           this.openBMapLocation(result.message)
         }
        })
      })
    },
    // 百度地图api
    openBMapLocation (message) {
      var geolocation = new BMapGL.Geolocation()
      geolocation.getCurrentPosition((r) => {
        if (r != null) {
         // 定位成功
        } else {
 
          Toast( '百度定位失败:' +  r )
        }
      })
    },