@Pedro Teixeira - 如果您从 Web 服务器而不是本地 HTML 页面运行此应用程序。这就是为什么这对您不起作用。
如果您的网站不是 HTTPS 或至少您调用地理定位的页面不是 HTTPS,为什么地理定位不起作用?
Chrome 公开有意弃用诸如基于非安全来源的地理定位等强大功能,我们希望其他人也能效仿。
从 Chrome 50 开始,Chrome 不再支持使用 HTML5 Geolocation API 从通过非安全连接传递的页面获取用户位置。这意味着进行 Geolocation API 调用的页面必须通过 HTTPS 等安全上下文提供服务。
这是一个重要的问题,因为它将直接影响任何需要使用地理定位 API 且不通过 https 提供服务的网站,但我们相信这是一个对网络上的所有用户都有益的变化。这篇文章应该可以帮助您理解其中的原因以及如何进行。
此更改何时生效?
此更改自 Chrome 50(太平洋标准时间 2016 年 4 月 20 日中午 12 点)起生效。
我们为什么要做出这种改变?
位置是敏感数据!需要 HTTPS 以保护用户位置数据的隐私。如果用户的位置可从非安全上下文中获得,则网络上的攻击者将能够知道该用户的位置。这严重损害了用户隐私。
这会影响谁?
这会影响当前通过 HTTP(非安全)提供的页面中使用 Geolocation API 的任何页面。如果嵌入在 HTTP 页面中,它还会影响使用 Geolocation API 的 HTTPS iframe。 (您将无法使用共享的 HTTPS 交付框架进行 polyfill。)
Google 开发者网站上的回复
如果您想使用 HTML5 Geolocation API,或者您的网站已经使用 Geolocation API,请将调用 Geolocation API 的页面迁移到 HTTPS,确保它们在安全的环境中使用。
有许多后备选项可用于获取不受此更改影响的用户位置,例如 Google Maps Geolocation API、GeoIP(例如,还有其他基于地理位置的解决方案)和用户输入的邮政编码。但是,我们强烈建议确保持续访问地理位置的最佳途径是迁移到 HTTPS。
请点击此链接了解更多信息
https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only