Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox 关于HTML5中的地理位置_Firefox_Google Maps_Html_Geolocation_Wifi - Fatal编程技术网

Firefox 关于HTML5中的地理位置

Firefox 关于HTML5中的地理位置,firefox,google-maps,html,geolocation,wifi,Firefox,Google Maps,Html,Geolocation,Wifi,谷歌地图现在可以在Firefox的帮助下精确定位我的位置 我知道这是HTML5兼容浏览器的一个新功能,并且位置是通过使用连接的WiFi网络的某种功能获取的(我希望我没有做出任何愚蠢的假设) 我想知道的是整个过程是如何运作的: 为什么只有HTML5 Firefox为什么/如何要求我与谷歌地图共享我的位置 人们可以指望的正常精度是多少 如何在我的网站中实现此功能 提前谢谢 HTML5提供了一种标准、统一的方式,允许web浏览器(以及web应用程序的服务器端)查询位置和相关信息,如速度(如果相关)

谷歌地图现在可以在Firefox的帮助下精确定位我的位置

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

我想知道的是整个过程是如何运作的:

  • 为什么只有HTML5
  • Firefox为什么/如何要求我与谷歌地图共享我的位置
  • 人们可以指望的正常精度是多少
  • 如何在我的网站中实现此功能
提前谢谢

HTML5提供了一种标准、统一的方式,允许web浏览器(以及web应用程序的服务器端)查询位置和相关信息,如速度(如果相关)。

主机及其web浏览器提供计算/估计地理位置本身的“设备” 要使此API有用,需要底层主机和web浏览器
a) 允许共享此类信息(注意隐私问题)和
b) 具备一定的能力(本地或通过他们连接的网络)读取或估计地理位置

计算实际位置所涉及的技术和设备包括以下内容的组合(当然并非所有内容都适用),并且独立于HTML 5标准:

  • GPS设备(现在很多手机都有)
  • 手机网络级别的路由信息
  • IP地址/ISP路由信息
  • 无线路由器信息
  • 固定数据,手动输入(用于位于固定位置的PC)
因此…
-HTML5本身无法确定地理位置:升级到更新的web浏览器本身不足以在应用程序中获得地理位置功能等。

-地理位置数据可以在HTML5 API之外共享,允许GPS就绪或地理位置就绪的手机在其他API中公开地理位置数据。

它是如何工作的?

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

如果您同意,Firefox将收集有关附近无线接入点和您计算机IP地址的信息,并通过将这些信息发送到(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.");
}  

您可以在这里看到一个在线演示:(需要一个地理位置感知浏览器,如Firefox 3.1b3。)

HTML5地理位置API使用某些功能,如全球定位系统(GPS)、设备的互联网协议(IP)地址、最近的移动电话塔和用户输入,在用户的设备中检索用户的位置。根据用于检索位置的源的类型,使用地理定位API检索到的用户位置几乎是准确的

这里有一个非常好的HTML5地理定位演示()。每当网站试图使用以下提到的API之一获取您的位置时,浏览器都会在调用API共享您的位置之前征求您的许可

地理定位API提供以下方法:

  • getCurrentPosition(成功回调、错误回调、选项)

    用于检索用户的当前地理位置

  • 观察位置(成功回调、错误回调、选项)

    该函数返回一个watchId,并使用更新的坐标调用successCallback。当用户移动时,它会继续返回更新的位置(如汽车中的GPS)

  • clearWatch(watchId)

    根据提供的watchId停止watchPosition()方法

示例代码:
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(userPositionSuccess,userPositionError);
}否则{
警报(“您的浏览器不支持地理位置。”);
}
功能userPositionSuccess(位置){
警报(“纬度:+position.coords.Latitude+”经度:+position.coords.Latitude”);
}
函数userPositionError(){
警报(“检索您的位置时出错!”);
}

已经是4月1日了吗?:)街道精度?在固定的个人电脑上?你一定是在开玩笑。不可能,这似乎真的存在@佩卡:告诉你了!=)而且我甚至没有安装Faik的Gears。它似乎不是特定于HTML的,但HTML 5似乎带来了一个接口:请参见此处了解w3c规范:我知道这只是一个示例,但请不要提醒();这样的信息。有很多网站发出警告(“你需要安装最新的Flash/Silverlight/任何东西”);这是a)愚蠢的,b)当我使用一个不支持它们的设备时,我感到非常痛苦。@Olly:我100%同意。然而,在这些例子中,我将AlcID()方法视为某种伪代码函数。每个人都理解alert()的含义,因此它的工作是为了可读性。。。我希望每个人都明白,它永远不应该这样使用(或者可能永远不应该这样使用!)@DanielVassallo So,w3c的
地理定位API的firefox实现使用
谷歌的定位服务
?。。而且,Chrome也是m