哪些设备支持通过navigator.geolocation使用JavaScript地理定位?

25

通过以下调用,iPhone在移动Safari中支持地理位置:

navigator.geolocation.getCurrentPosition(
  function(pos){
    var lat = pos.coords.latitude;
    var long = pos.coords.longitude;
  },
  function(){
    /* Handler if location could not be found */
  }
);

我想要创建一个设备列表,这些设备具有以下功能之一:

  1. 开箱即用地支持此功能,或者
  2. 通过升级支持此功能,或者
  3. 使用其他的JavaScript代码片段以与等效数据精度支持地理位置。

由于只熟悉自己的设备,因此以下是我的列表:

开箱即用:

  1. iPhone 3GS

仅在更新后支持

  1. iPhone 3G
  2. iPhone 2G (?)
  3. PC或Mac电脑上Firefox 3.5

使用其他代码片段支持

Blackberry、Android手机等设备的支持水平如何?


许多设备支持访问 GPS 位置,只是不一定通过 navigator.geolocation。你真的只关心那个特定的 API 吗? - Crescent Fresh
好的,任何通过JavaScript实现的东西在技术上都应该可以很好地完成,只要您可以进行特性检测(我们是否已经和XHR处于同一条船上了?) - Maciek
7个回答

17
截至今日,以下主要桌面浏览器已支持W3C Geolocation API(虽然技术上并非HTML 5的一部分):
  • Firefox(自3.5版本起)
  • Safari(自5.0版本起)
  • Google Chrome(版本取决于操作系统)
  • Opera(自10.60版本起)
  • Internet Explorer(自IE 9版本起)
至少有两个移动浏览器实现了地理位置API:
  • Safari Mobile(自iPhone OS 3.0版本起)
  • Android(至少自Android 1.6版本起)
在所有这些平台上,您应该能够使用navigator.geolocation.getCurrentPosition等API。

7

虽然我认为标准化(顺便提一下,是草案)W3C地理位置API是一个很好的实践,但值得注意的是浏览器中还有其他几个选项,如果您需要针对旧平台进行定位,这些选项可以非常有帮助。

  • Firefox 3.1支持Geode,它使用与navigator.geolocation相似的调用方式
  • Loki是由Skyhook创建的插件,在Internet Explorer 6,Internet Explorer 7,Firefox 2,Firefox 3,Safari和Opera上运行。 语法差别很大,但仍然很容易
  • Google Gears提供了一个地理位置API,其语法与W3C API语法相当相似。 您可以在Internet Explorer 6+,Firefox 1.5+,Safari,Opera Mobile和IE Mobile上安装Google Gears。

4

以下是一篇类似而更近期的话题:

“我正在开发一个开源库,支持所有符合W3C标准的javascript定位手机。目前已支持iPhone、Android、BlackBerry和某些边缘浏览器平台在浏览器中运行。该库也可用于编写Nokia OVI和Palm WebOS的Web堆栈独立应用程序。

http://code.google.com/p/geo-location-javascript/


3

W3C版本可以在android 2.*上运行。在android 1.6上,您可以退回到gears,它的工作方式基本相同。理论上,W3C标准也应该适用于Firefox手机版(Fennec),该版本目前可用于Nokia的Maemo设备,并将成为MeeGo的标准。


实际上,我在这方面写了一篇博客文章,其中包含更多细节,网址为:http://textopiablog.wordpress.com/2010/05/07/cross-platform-locative-media/ 我自己并不是专家,但对于任何感兴趣的人,那里有一些更多信息的链接。 - Anders Sundnes Løvlie

1

您不必拥有最新的手机才能使用GPS和地理位置API。几乎所有移动浏览器(无代理服务器)都可以用于从内置GPS读取位置。如果您的手机具有Java和GPS功能,则可以使用mobile-gps-web-gate - 请参见http://code.google.com/p/mobile-gps-web-gate/


0

Franson's GPSGate是一款商业产品,可以通过JavaScript将Windows机器的硬件GPS暴露给任何浏览器。但是,其界面与W3C的实现略有不同。

更新:GPSGate的Express(精简版)是免费的。


1
+1 for GPSGate,我们发现它是Windows 7桌面上唯一的解决方案,因为没有浏览器可以将硬件GPS位置提供给地理定位对象。曾经有一个在Chrome中包含支持的举措,但这又被取消了,问题45535 - kes

0

我知道这是一个老问题,但你可以在这里找到支持地理定位的设备列表:http://www.quirksmode.org/webkit.html。该列表由网站作者维护,因此应该保持最新。


该页面仅比较基于Webkit的浏览器。 - Matthew Lock

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