japanese少妇高潮潮喷 -精品国产AV一区二区三区-麻豆av一区二区三区久久-国产精品无码专区

在HTML5實現獲取地理位置信息并定位功能

發布時間:2025-06-04 點擊:38
html5提供了地理位置定位功能(geolocation api),能確定用戶位置,我們可以借助html5的該特性開發基于地理位置信息的應用。本文結合實例給大家分享如何使用html5,借助百度、谷歌地圖接口來獲取用戶準確的地理位置信息。
如何使用html5地理位置定位功能
定位功能(geolocation)是html5的新特性,因此只有在支持html5的現代瀏覽器上運行,特別是手持設備如iphone,地理定位更加精確。首先我們要檢測用戶設備瀏覽器是否支持地理定位,如果支持則獲取地理信息。注意這個特性可能侵犯用戶的隱私,除非用戶同意,否則用戶位置信息是不可用的,所以我們在訪問該應用時會提示是否允許地理定位,我們當然選擇允許即可。
復制代碼代碼如下:
function getlocation(){ if (navigator.geolocation){ navigator.geolocation.getcurrentposition(showposition,showerror); }else{ alert(瀏覽器不支持地理定位。); } }
上面的代碼可以知道,如果用戶設備支持地理定位,則運行 getcurrentposition() 方法。如果getcurrentposition()運行成功,則向參數showposition中規定的函數返回一個coordinates對象,getcurrentposition() 方法的第二個參數showerror用于處理錯誤,它規定當獲取用戶位置失敗時運行的函數。我們先來看函數showerror(),它規定獲取用戶地理位置失敗時的一些錯誤代碼處理方式:
復制代碼代碼如下:
function showerror(error){ switch(error.code) { case error.permission_denied: alert(定位失敗,用戶拒絕請求地理定位); break; case error.position_unavailable: alert(定位失敗,位置信息是不可用); break; case error.timeout: alert(定位失敗,請求獲取用戶位置超時); break; case error.unknown_error: alert(定位失敗,定位系統失效); break; } }
我們再來看函數showposition(),調用coords的latitude和longitude即可獲取到用戶的緯度和經度。
復制代碼代碼如下:
function showposition(position){ var lat = position.coords.latitude; //緯度 var lag = position.coords.longitude; //經度 alert('緯度:'+lat+',經度:'+lag); }
利用百度地圖和谷歌地圖接口獲取用戶地址
上面我們了解了html5的geolocation可以獲取用戶的經緯度,那么我們要做的是需要把抽象的經緯度轉成可讀的有意義的真正的用戶地理位置信息。幸運的是百度地圖和谷歌地圖等提供了這方面的接口,我們只需要將html5獲取到的經緯度信息傳給地圖接口,則會返回用戶所在的地理位置,包括省市區信息,甚至有街道、門牌號等詳細的地理位置信息。我們首先在頁面定義要展示地理位置的div,分別定義id#baidu_geo和id#google_geo。我們只需修改關鍵函數showposition()。先來看百度地圖接口交互,我們將經緯度信息通過ajax方式發送給百度地圖接口,接口會返回相應的省市區街道信息。百度地圖接口返回的是一串json數據,我們可以根據需求將需要的信息展示給div#baidu_geo。注意這里用到了jquery庫,需要先加載jquery庫文件。
復制代碼代碼如下:
function showposition(position){ var latlon = position.coords.latitude+','+position.coords.longitude;
//baidu var url = http://api.map.baidu.com/geocoder/v2/?ak=c93b5178d7a8ebdb830b9b557abce78b&callback=renderreverse&location=+latlon+&output=json&pois=0; $.ajax({ type: get, datatype: jsonp, url: url, beforesend: function(){ $(#baidu_geo).html('正在定位...'); }, success: function (json) { if(json.status==0){ $(#baidu_geo).html(json.result.formatted_address); } }, error: function (xmlhttprequest, textstatus, errorthrown) { $(#baidu_geo).html(latlon+地址位置獲取失敗); } }); });
再來看谷歌地圖接口交互。同樣我們將經緯度信息通過ajax方式發送給谷歌地圖接口,接口會返回相應的省市區街道詳細信息。谷歌地圖接口返回的也是一串json數據,這些json數據比百度地圖接口返回的要更詳細,我們可以根據需求將需要的信息展示給div#google_geo。
復制代碼代碼如下:
function showposition(position){ var latlon = position.coords.latitude+','+position.coords.longitude;


網站關鍵詞排名到前3名SEO技巧!
網絡營銷的渠道和方法有哪些?
服裝網站對于設計要求嚴格嗎
人工智能軟件開發已到來,也是悶聲發財的機會!
新零售到來,商家要抓住風口
設計優秀的網站有哪些優點
百度更新之后文章質量很重要
歐美網站有什么特點?