首页 > 解决方案 > navigator.geolocation.getCurrentPosition 返回“未知错误获取位置”

问题描述

我目前正在使用地理定位 API。

当允许我的浏览器 - localhost 或 webhost- 获取我的位置时,我的 console.log 返回:

未知错误获取位置

我无法弄清楚,因为我已经授权了连接,而且我的代码似乎很干净,因为我是从 Mozilla 官方 MDN 获取的。

这是我的 client.js :

      var options = {
            enableHighAccuracy: true,
            timeout: 5000,
            maximumAge: 0
      };

      function success(pos) {
        var crd = pos.coords;

        console.log('Votre position actuelle est :');
        console.log(`Latitude : ${crd.latitude}`);
        console.log(`Longitude: ${crd.longitude}`);
        console.log(`Plus ou moins ${crd.accuracy} mètres.`);
      };

      function error(err) {
        console.warn(`ERROR(${err.code}): ${err.message}`);
      };

      navigator.geolocation.getCurrentPosition(success, error, options);

任何提示都会很棒,谢谢

标签: javascriptnode.jsgeolocation

解决方案


Google 已更改(5 月至 6 月)有关 API 密钥的一些政策(现在需要有效的 API 密钥)。如果您转到 Firefox 并键入about:config并搜索 property geo.wifi.uri,您将看到没有 api 密钥的 google url。您可以将 url 更改为另一个地理服务 ( https://location.services.mozilla.com/v1/geolocate?key=test ),但对于生产,最好执行直接 ajax 调用,如下所示:

    const res = await fetch('https://location.services.mozilla.com/v1/geolocate?key=test').then(el=>el.json())
    const point = [res.location.lat, res.location.lng]

一旦 Firefox 解决了这个问题,您就可以像以前一样使用地理定位 API。

(另请参见html 地理位置:获取位置的未知错误


推荐阅读