中国的HTML 5地理定位技术

3
我在应用程序中使用以下代码来获取用户位置。
function getGeoCoords() {
  var deferred = $.Deferred();
  navigator.geolocation.getCurrentPosition(deferred.resolve, deferred.reject);
  return deferred.promise();
}

以下是使用该功能的内容:

return deferred.pipe(function() {
 console.log('Getting user location. . .');
 return getGeoCoords();
}).pipe(function (position)) {
. . . 

这段代码已经在所有浏览器中进行了测试,并且表现良好,唯独Chrome浏览器存在问题。

似乎这个问题只限于中国区域。其他在该地区测试的浏览器(包括IE)都可以正常工作。但是出于某些原因,在Chrome中无法使用Geolocation API来获取用户在中国的位置信息。

有什么想法吗?

2个回答

0

0

六年过去了,我仍然无法在Chrome中使其工作。但是有一些可行的例子,那么他们是如何做到的呢?

这是我的问题:

我在中国,需要制作一个网站,显示带有“获取我的位置”按钮的地图。为简化起见,如果我在调试器中运行以下代码,则在某些环境中它将无法获取我的位置。有人能告诉我原因吗?

navigator.geolocation.getCurrentPosition(success => console.log(success), err => console.error(err))

我可以在以下环境中获取位置:

  • 我的Macbook使用来自手机(热点)的4G,Safari浏览器。
  • PC使用来自LAN的互联网,Edge浏览器。

我无法在以下环境中获取位置:

  • 我的Macbook使用来自LAN的互联网,Safari浏览器。
  • PC使用来自LAN的互联网,Chrome 68版本以及中国QQ浏览器: 错误:{ code:2, message:"Network location provider at 'https://www.googleapis.com/' : No response received." }
  • PC使用来自LAN的互联网,Chome 103或Firefox:未收到成功和错误信息。

在所有情况下,位置服务已启用且未使用 VPN。 我知道,在中国无法访问 googleapis.com。但百度地图、高德地图或腾讯地图应该可以在 Chrome 上运行,但它们却不能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接