HTML5 Geolocation(地理定位)用於定位使用者的位置。
定位使用者的位置
html5 Geolocation API用於獲得使用者的地理位置
鑑於該特性可能低侵犯使用者的隱私,除非使用者同意,否則使用者位置資訊是不可用的。
HTML5 -使用地理定位
請使用getCurrentPositon()方法來獲得使用者的位置
下例是一個簡單的地理定位的例項,可返回使用者位置的緯度和緯度
直接上程式碼吧:
<script> var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else{x.innerHTML="該瀏覽器不支援獲取地理位置。";} } function showPosition(position) { x.innerHTML="Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } </script>
例項解析:
檢測是否支援地理定位
如果支援,則執行getCurrentPosition()方法。如果不支援,則幾使用者顯示一段訊息。
如果getCuurentPosition()執行成功,則向引數showPosition中規定的函式返回一個coordinates物件
showPostion()函式獲取並顯示經度和緯度
處理錯誤和拒絕
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; } }
Geolocation物件-其他有趣的方法
catchPosition()-返回使用者的當前位置,並繼續返回使用者移動時的更新位置(就像汽車的GPS)
clearWatch()-停止watchPosition()方法
下面的例子展示watchPosition()方法,您需要一臺精確的GPS設定來測試該例
<script> 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; } </script>
本節完