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