相关疑难解决方法(0)

关于HTML 5中的地理位置

现在,谷歌地图可以借助Firefox在街道精确度上精确定位我的位置.

我知道这是HTML 5兼容浏览器的一个新功能,并且通过使用连接的WiFi网络的某种功能来获取位置(我希望我没有做出任何愚蠢的假设).

我打算知道整个过程是如何工作的:

  • 为什么只在HTML 5中?
  • Firefox为何/如何让我与谷歌地图分享我的位置?
  • 可以指望的正常精度是多少?
  • 如何在我的网站中实现此功能?

提前致谢!

firefox html5 google-maps geolocation wifi

28
推荐指数
2
解决办法
1万
查看次数

在没有 Google API 的情况下使用浏览器 GeoLocation?

我需要从 Web 客户端获取用户的位置。由于在一些国家(详细信息,请参阅谷歌限制#2这个问题),下面的代码会返回一个空的对象(在浏览器控制台,铬,Safari浏览器等等。):

navigator.geolocation
Run Code Online (Sandbox Code Playgroud)

所以,我不能getCurrentLocation地理定位 API 中使用和其他方法 我使用不同的方法来查找用户位置(IP 基础),但它不能正常工作。

还有另一种方法可以找到用户位置坐标吗?

更新(2020 年 7 月 12 日):

由于误解,我更新了我的帖子。 有些人说它适用于 HTTPS。于是我打开Chrome浏览器,搜索StackOverflow(这个站点是众所周知的HTTPS)

在此处输入图片说明

现在在控制台上,没有 navigator.geolocation 的任何数据:

在此处输入图片说明

javascript browser location google-api geolocation

15
推荐指数
1
解决办法
996
查看次数

W3C地理定位返回缓存的坐标

我有一个Chrome扩展程序,它使用W3C Geolocation API来获取用户的位置.该扩展程序主要用于Chromebook.

我注意到API似乎在大多数情况下返回相同的坐标(缓存?),即使我将maximumAge参数设置为0.我通过在位置#1的Chromebook上部署扩展来测试这一点,然后采用设备到位置#2,距离约1公里.在那里再次调用API并返回与之前相同的坐标.过了一会儿(我间隔10分钟),它返回了正确的坐标,但是当我回到位置#1时,我又从位置#2获得了缓存坐标.

我尝试过getCurrentPosition,watchPosition以及选项对象的几种组合,但似乎总是产生相同的结果.

我目前的代码如下:

function getGeolocation() {
  return new Promise((resolve, reject) => {
    const options = { enableHighAccuracy: true, timeout: 30000, maximumAge: 0 };
    navigator.geolocation.getCurrentPosition(resolve, reject, options);
  });
}

getGeolocation()
  .then(position => handler(position))
  .catch(err => console.error(err));
Run Code Online (Sandbox Code Playgroud)

我需要这个在第一次尝试时或在合理的短时间内返回正确的坐标.有什么建议?

谢谢!

编辑:

要注意的是,浏览器传感器选项卡中的坐标更改每次都能正常工作,但在实际情况下,它似乎在大多数情况下都会返回缓存结果.

编辑(11月5日):

经过一些更多测试后,似乎只在Chrome OS上发生这种情况.我们无法在PC上重现相同的行为(有或没有扩展名).

google-chrome google-chrome-extension w3c-geolocation

6
推荐指数
1
解决办法
363
查看次数