关于HTML 5中的地理位置

Ali*_*xel 28 firefox html5 google-maps geolocation wifi

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

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

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

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

提前致谢!

Dan*_*llo 35

它是如何工作的?

当您在Firefox中访问位置感知网站时,浏览器会询问您是否要共享您的位置.

如果您同意,Firefox会收集有关附近无线接入点和计算机IP地址的信息,并通过将此信息发送到Google位置服务(Firefox中的默认地理定位服务)来估算您的位置.然后,与请求网站共享该位置估计.(来源)

地点的准确度如何?

不同地点的准确度差异很大.在一些地方,地理定位服务提供商可能能够提供几米内的位置.但是,在其他领域,它可能远不止于此.所有地点都被视为估算,因为无法保证所提供地点的准确性.(来源)

就我而言,Firefox报告说我离我的真实位置大约10公里.

如何在我的网站中使用此功能?

你会做这样的事情:

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) {  

        alert(position.coords.latitude + ", " + position.coords.longitude);

        // Use the latitude and location as you wish. You may set a marker
        // on Google Maps, for example.
    }); 
} 
else {
    alert("Geolocation services are not supported by your browser.");
}  
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到一个在线演示:Firefox HTML 5 Geolocation Demo(需要一个支持地理位置的浏览器,比如Firefox 3.1b3.)

  • @Olly:我同意100%.但是在这样的例子中,我将alert()方法视为某种伪代码函数.每个人都理解alert()的意思,所以它为了可读性目的而做它的工作......我希望每个人都明白它不应该像那样使用(或者根本不可能!). (6认同)

mjv*_*mjv 14

HTML5提供API

它允许Web浏览器(然后是Web应用程序的服务器端)以标准,统一的方式查询位置和相关信息,例如速度(如果相关).

主机及其Web浏览器提供计算/估计地理位置本身的"设备"

要使此API有用,需要底层主机和Web浏览器
  a)允许共享此类信息(请注意隐私问题)和
  b)有所配备(在本地或通过网络连接到它们)阅读或估计地理位置.

计算实际位置所涉及的技术和设备涉及以下的组合(当然不是全部应用),并且独立于HTML 5标准:

  • GPS设备(很多手机现在都有)
  • 在手机网络级别的路由信息
  • IP地址/ ISP路由信息
  • 无线路由器信息
  • 固定数据,手动输入(适用于固定位置的个人电脑)
  • ...

因此......
- 单靠 HTML5 无法弄清楚地理定位:升级到更新的网络浏览器本身并不足以在您的应用程序中获取地理定位功能等.
- 地理位置数据可以在HTML5 API之外共享,允许GPS -ready或GeoLocation-ready电话在其他API中公开地理位置数据.