怎样运用HTML5地理位置定位功能?-
怎样运用HTML5地理位置定位功能
定位功能(Geolocation)是HTML5的新特性,因而只要在支撑HTML5的现代阅读器上运转,特殊是手持设施如苹果,地理定位更加精准。第一我们要检测会员设施阅读器可否支撑地理定位,要是支撑则猎取地理信息。注意这个特性可能侵略会员的隐私,除非会员赞成,不然会员位置信息是不成用的,所以我们在拜访该利用时会提醒可否允许地理定位,我们固然选中允许即可。
function getLocation(){ if (navigator.geolocation){ navigator.geolocation.getCurrentPosition(showPosition,showError); }else{ alert("阅读器不支撑地理定位。"); } }
上面的代码可以晓得,要是会员设施支撑地理定位,则运转 getCurrentPosition() 办法。
在拜访位置信息前,阅读器都会扣问会员可否同享其位置信息,以 Chrome 阅读器为例,要是您允许 Chrome 阅读器与网站同享您的位置,Chrome 阅读器会向 Google 位置办事发送当地网络信息,预计您所在的位置。然后,阅读器会与要求运用您位置的网站同享您的位置。
HTML5 Geolocation API 运用非常简略,根本调取方式如下:
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(locationSuccess, locationError,{ // 指挥阅读器猎取高精度的位置,默许为false enableHighAccuracy: true, // 指定猎取地理位置的超不时间,默许不限时,单位为毫秒 timeout: 5000, // 最长有效期,在反复猎取地理位置时,此参数指定多久再次猎取位置。 maximumAge: 3000 }); }else{ alert("Your browser does not support Geolocation!"); }
locationError为猎取位置信息失败的回调函数,可以依据差错类型提醒信息:
locationError: function(error){ switch(error.code) { case error.TIMEOUT: showError("A timeout occured! Please try again!"); break; case error.POSITION_UNAVAILABLE: showError('We can\'t detect your location. Sorry!'); break; case error.PERMISSION_DENIED: showError('Please allow geolocation access for this to work.'); break; case error.UNKNOWN_ERROR: showError('An unknown error occured!'); break; } }
locationSuccess为猎取位置信息成功的回调函数,返回的数据中包括经纬度等信息,联合Google Map API 即可在地图中显示目前会员的位置信息,如下:
locationSuccess: function(position){ var coords = position.coords; var latlng = new google.maps.LatLng( // 维度 coords.latitude, // 精度 coords.longitude ); var myOptions = { // 地图放大倍数 zoom: 12, // 地图核心设为指定坐标点 center: latlng, // 地图类型 mapTypeId: google.maps.MapTypeId.ROADMAP }; // 新建地图并输出到页面 var myMap = new google.maps.Map( document.getElementById("map"),myOptions ); // 新建标志 var marker = new google.maps.Marker({ // 标注指定的经纬度坐标点 position: latlng, // 指定用于标注的地图 map: myMap }); //新建标注窗口 var infowindow = new google.maps.InfoWindow({ content:"您在这里
纬度:"+ coords.latitude+ "
经度:"+coords.longitude }); //打开标注窗口 infowindow.open(myMap,marker); }
经过测试,Chrome/Firefox/Safari/Opera四个阅读器猎取到的位置信息都是一摸同样的,预计都是用的统一个位置办事,数据如下:
总的来说,在PC的阅读器中 HTML5 的地理位置功能猎取的位置精度不足高,要是借助这个 HTML5 特性做一个城市气候预告是绰绰有余,但要是是做一个地图利用,那误差还是太大了。不外,要是是挪移设施上的 HTML5 利用,可以通过设定 enableHighAcuracy 参数为 true,调取设施的 GPS 定位来猎取高精度的地理位置信息。
以上就是怎样运用HTML5地理位置定位功能?的细致内容,更多请关注 百分百源码网 其它相干文章!