javascript - 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);
任何提示都会很棒,谢谢
解决方案
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 地理位置:获取位置的未知错误)
推荐阅读
- c++ - 在读取 /dev/fb0 时没有得到预期的输出
- mysql - 如何为下表创建查询
- python - 根据人名区分输出?
- c++ - 双向链表中的指针无法正常工作
- javascript - 为什么点击时我的颜色没有变化?
- scala - 无法使用 onComplete & andThen 打印 Scala Future 的值
- javascript - 使用 for of 循环计算数组中的多个元素
- c++ - 为什么不能直接定义匿名 struct/class-es 的模板化别名?
- android - android服务中断
- spring-boot - 如何在执行实体的 CREATE 操作时将实体关联放入 JSON(在 POST HTTP 请求中)具有另一个实体的关联?