当前位置: 首页 > 科技观察

HTML5Geolocation(HTML5Geolocation)原理及应用

时间:2023-03-21 00:41:59 科技观察

Geolocation是HTML5的重要特性之一,它提供了确定用户所在位置的功能。利用此功能,可以开发基于位置信息的应用程序。今天的文章将为大家介绍HTML5地理定位的基本原理以及各个浏览器的数据准确性。在访问位置信息之前,浏览器会询问用户是否共享他们的位置信息。以Chrome浏览器为例,如果您允许Chrome浏览器与网站共享您的位置,Chrome浏览器会将本地网络信息发送给谷歌定位服务,估计您的位置。浏览器然后与请求它的网站共享您的位置。HTML5GeolocationAPI使用非常简单,基本调用方式如下:默认为falseenableHighAcuracy:true,//指定获取地理位置的超时时间,默认无限制,单位为毫秒timeout:5000,//最长有效期,重复获取地理位置时,该参数指定再次获取位置的时间。maximumAge:3000});}else{alert("你的浏览器不支持地理定位!");}locationError是获取位置信息失败的回调函数,可以根据错误类型提示信息:);休息;caseerror.POSITION_UNAVAILABLE:showError('Wecan\'tdetectyourlocation.Sorry!');休息;caseerror.PERMISSION_DENIED:showError('请允许casegeolocationaccess');UNKNOWN_ERROR:showError('Anunknowneroroccured!');休息;}}locationSuccess是获取位置信息成功的回调函数。返回的数据包括纬度和经度信息。结合GoogleMapAPI,可以在地图上显示当前用户的位置信息,如下:locationSuccess:function(position){v??arcoords=position.coords;varlatlng=newgoogle.maps.LatLng(//维度坐标.latitude,//精度坐标.longitude);varmyOptions={//地图放大倍数zoom:12,//地图中心设置为指定坐标点center:latlng,//地图类型mapTypeId:google.maps.MapTypeId.ROADMAP};//创建地图并输出到页面varmyMap=newgoogle.maps.Map(document.getElementById("map"),myOptions);//创建标签varmarker=newgoogle.maps.Marker({//标记指定的经纬度坐标点position:latlng,//指定要标记的地图map:myMap});//创建标签窗口variinfowindow=newgoogle.maps.InfoWindow({content:"你在这里
Latitude:"+coords.latitude+"
Longitude:"+coords.longitude});//打开标记窗口infowindow.open(myMap,marker);}经测试,Chrome/Firefox/Safari/Opera这四种浏览器获取到的位置信息完全一致,估计都是使用同一个位置服务。数据如下:而IE浏览器和上述浏览器获取的数据无,数据如下:定位服务用于估计您所在位置的本地网络信息包括:可见的WiFi接入点信息(包括信号强度)、有关您本地路由器的信息、您计算机的IP地址、定位服务的准确度和覆盖范围因位置而异。总体而言,PC浏览器中HTML5地理位置功能获取的定位精度不够高。如果你用HTML5的这个特性做一个城市天气预报,绰绰有余,但是如果你做一个地图应用,误差还是太大了。.但是,如果是移动设备上的HTML5应用,可以将enableHighAcuracy参数设置为true,调用设备的GPS定位,获取高精度的地理位置信息。原文链接:http://www.cnblogs.com/lhb25/archive/2012/07/10/html5-geolocation-api-demo.html