av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

HTML5 地理位置定位(HTML5 Geolocation)原理及應用

地理位置(Geolocation)是 HTML5 的重要特性之一,提供了確定用戶位置的功能,借助這個特性能夠開發(fā)基于位置信息的應用。今天這篇文章向大家介紹一下 HTML5 地理位置定位的基本原理及各個瀏覽器的數(shù)據(jù)精度情況。

成都創(chuàng)新互聯(lián)主營青島網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件開發(fā)公司,青島h5微信小程序定制開發(fā)搭建,青島網(wǎng)站營銷推廣歡迎青島等地區(qū)企業(yè)咨詢

在訪問位置信息前,瀏覽器都會詢問用戶是否共享其位置信息,以 Chrome 瀏覽器為例,如果您允許 Chrome 瀏覽器與網(wǎng)站共享您的位置,Chrome 瀏覽器會向 Google 位置服務發(fā)送本地網(wǎng)絡信息,估計您所在的位置。然后,瀏覽器會與請求使用您位置的網(wǎng)站共享您的位置。

HTML5 Geolocation API 使用非常簡單,基本調(diào)用方式如下:

 
 
  1. if (navigator.geolocation) {  
  2.     navigator.geolocation.getCurrentPosition(locationSuccess, locationError,{  
  3.         // 指示瀏覽器獲取高精度的位置,默認為false  
  4.         enableHighAcuracy: true,  
  5.         // 指定獲取地理位置的超時時間,默認不限時,單位為毫秒  
  6.         timeout: 5000,  
  7.         // 最長有效期,在重復獲取地理位置時,此參數(shù)指定多久再次獲取位置。  
  8.         maximumAge: 3000  
  9.     });   
  10. }else{  
  11.     alert("Your browser does not support Geolocation!");  

locationError為獲取位置信息失敗的回調(diào)函數(shù),可以根據(jù)錯誤類型提示信息:

 
 
  1. locationError: function(error){  
  2.     switch(error.code) {  
  3.         case error.TIMEOUT:  
  4.             showError("A timeout occured! Please try again!");  
  5.             break;  
  6.         case error.POSITION_UNAVAILABLE:  
  7.             showError('We can\'t detect your location. Sorry!');  
  8.             break;  
  9.         case error.PERMISSION_DENIED:  
  10.             showError('Please allow geolocation access for this to work.');  
  11.             break;  
  12.         case error.UNKNOWN_ERROR:  
  13.             showError('An unknown error occured!');  
  14.             break;  
  15.     }  

locationSuccess為獲取位置信息成功的回調(diào)函數(shù),返回的數(shù)據(jù)中包含經(jīng)緯度等信息,結合Google Map API 即可在地圖中顯示當前用戶的位置信息,如下:

 
 
  1. locationSuccess: function(position){  
  2.     var coords = position.coords;       
  3.     var latlng = new google.maps.LatLng(  
  4.         // 維度  
  5.         coords.latitude,  
  6.         // 精度  
  7.         coords.longitude  
  8.     );     
  9.     var myOptions = {     
  10.         // 地圖放大倍數(shù)     
  11.         zoom: 12,     
  12.         // 地圖中心設為指定坐標點     
  13.         center: latlng,     
  14.         // 地圖類型     
  15.         mapTypeId: google.maps.MapTypeId.ROADMAP     
  16.     };     
  17.     // 創(chuàng)建地圖并輸出到頁面     
  18.     var myMap = new google.maps.Map(     
  19.         document.getElementById("map"),myOptions     
  20.     );     
  21.     // 創(chuàng)建標記     
  22.     var marker = new google.maps.Marker({     
  23.         // 標注指定的經(jīng)緯度坐標點     
  24.         position: latlng,     
  25.         // 指定用于標注的地圖     
  26.         map: myMap  
  27.     });  
  28.     //創(chuàng)建標注窗口     
  29.     var infowindow = new google.maps.InfoWindow({     
  30.         content:"您在這里
    緯度:"+     
  31.             coords.latitude+     
  32.             "
    經(jīng)度:"+coords.longitude     
  33.     });     
  34.     //打開標注窗口     
  35.     infowindow.open(myMap,marker);    

經(jīng)過測試,Chrome/Firefox/Safari/Opera四個瀏覽器獲取到的位置信息都是一摸一樣的,估計都是用的同一個位置服務,數(shù)據(jù)如下:

而IE瀏覽器的和上面幾款瀏覽器獲取到的數(shù)據(jù)不一樣,數(shù)據(jù)如下:

位置服務用于估計您所在位置的本地網(wǎng)絡信息包括:有關可見 WiFi 接入點的信息(包括信號強度)、有關您本地路由器的信息、您計算機的 IP 地址。位置服務的準確度和覆蓋范圍因位置不同而異。

總的來說,在PC的瀏覽器中 HTML5 的地理位置功能獲取的位置精度不夠高,如果借助這個 HTML5 特性做一個城市天氣預報是綽綽有余,但如果是做一個地圖應用,那誤差還是太大了。不過,如果是移動設備上的 HTML5 應用,可以通過設置 enableHighAcuracy 參數(shù)為 true,調(diào)用設備的 GPS 定位來獲取高精度的地理位置信息。


新聞名稱:HTML5 地理位置定位(HTML5 Geolocation)原理及應用
標題URL:http://uogjgqi.cn/article/ccodcdo.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流