html5 Geolocation(地理定位)用于定位用戶的位置 定位用戶的位置html5 Geolocation API 用于獲得用戶的地理位置 鑒于該特性可能侵犯用戶的隱私,除非用戶同意,否則用戶位置信息是不可用的 瀏覽器支持Internet Explorer 9+,Firefox,Chrome,Safari 和 Opera 支持 Geolocation(地理定位). Geolocation(地理定位)對于擁有 GPS 的設備,比如 iPhone,地理定位更加精確 使用地理定位HTML DOM getCurrentPosition() 方法用來獲得用戶的位置 下面的范例演示了一個簡單的的地理定位,返回用戶位置的經度和緯度 var x = document.getElementById("demo"); function getLocation(){ if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML="該瀏覽器不支持獲取地理位置"; } } function showPosition(position) { x.innerHTML="緯度: " + position.coords.latitude + "<br>經度: " + position.coords.longitude; }
檢測瀏覽器是否支持地理定位 注意: 這個范例是一個非常基礎的地理定位腳本,不含錯誤處理 處理錯誤和拒絕方法 getCurrentPosition() 的第二個參數用于處理錯誤,規定了當獲取用戶位置失敗時運行的函數 function showError(error){ switch(error.code) { case error.PERMISSION_DENIED: x.innerHTML="用戶拒絕對獲取地理位置的請求。" break; case error.POSITION_UNAVAILABLE: x.innerHTML="位置信息是不可用的。" break; case error.TIMEOUT: x.innerHTML="請求用戶地理位置超時。" break; case error.UNKNowN_ERROR: x.innerHTML="未知錯誤。" break; } } 錯誤代碼
在地圖中顯示結果如需在地圖中顯示結果,需要訪問可使用經緯度的地圖服務,比如谷歌地圖或百度地圖 function showPosition(position){ var latlon=position.coords.latitude+","+position.coords.longitude; var img_url="http://maps.googleapis.com/maps/api/staticmap?center="+latlon+"&zoom=14&size=400x300&sensor=false"; document.getElementById("mapholder").innerHTML="<img src='"+img_url+"'>"; } 上面這個范例,我們我們使用返回的經緯度數據在谷歌地圖中顯示位置(使用靜態圖像) 這個范例演示了如何使用腳本來顯示帶有標記、縮放和拖曳選項的交互式地圖 給定位置的信息本節大部分的范例是如何在地圖上顯示用戶的位置 不過,地理定位對于給定位置的信息同樣很有用處 范例
getCurrentPosition() 方法 - 返回數據若成功,則 getCurrentPosition() 方法返回對象 始終會返回 latitude、longitude 以及 accuracy 屬性 如果可用,則會返回下面的屬性
Geolocation 對象 - 其它有趣的方法
下面的范例演示儀了 watchPosition() 方法,你需要一臺精確的 GPS 設備來測試該范例 var x=document.getElementById("demo"); function getLocation(){ if (navigator.geolocation){ navigator.geolocation.watchPosition(showPosition); }else{ x.innerHTML="該瀏覽器不支持獲取地理位置。"; } } function showPosition(position){ x.innerHTML="緯度: " + position.coords.latitude + "<br>經度: " + position.coords.longitude; } |