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

nov*_*imo 15 javascript browser location 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 的任何数据:

在此处输入图片说明

小智 -1

您可以尝试使用地理定位 API 获取用户位置,并使用用户的 IP 地址作为后备方案,以防 API 在用户环境中不起作用。

const success = (position) => {
  // use position
};

const fallback = () => {
  // try getting it via the user's IP
}

navigator.geolocation.getCurrentPosition(success, fallback);
Run Code Online (Sandbox Code Playgroud)

当然,这完全取决于您需要多少精度。IP 地址定位的精度并不高。