Geolocation API在瀏覽器中的實現是navigator.geolocation對象,經常使用的有如下方法。git
一、第一個方法是getCurrentPosition()瀏覽器
調用這個方法就會觸發請求用戶共享地理定位信息的對話框。好比在火狐中的對話框:函數
這個方法接收3個參數:成功回調函數、可選的失敗回調函數和可選的選項對象。spa
①成功回調函數會接收一個Position對象參數,有兩個屬性:coords和timestamp。設計
coords對象中包含下列與位置相關的信息。日誌
有些瀏覽器還會提供海拔/海拔精度/速度等信息。Web經常使用的是緯度和經度。code
好比顯示用戶的位置:對象
navigator.geolocation.getCurrentPosition(function(position){ $(".content div.item2").text("你的位置在:北緯"+position.coords.latitude+" 東經"+position.coords.longitude); });
②失敗回調函數,會接收一個對象,包含兩個屬性,message和code,前者保存錯誤文本消息,後者保存錯誤碼,有1—用戶拒絕共享,2-位置無效,3-超時。大多數狀況下將錯誤信息保存在日誌文件中。演示:blog
navigator.geolocation.getCurrentPosition(function(position){ $(".content div.item2").text("你的位置在:北緯"+position.coords.latitude+" 東經"+position.coords.longitude); },function(error){ $(".content div.item2").text(error.code+","+error.message); });
在Chrome中拒絕共享時拒絕:ip
會顯示:錯誤碼1,信息是用戶拒絕共享。
③第三個參數是選項對象,用於設定信息的類型,能夠設置的選項有三個:
如:
navigator.geolocation.getCurrentPosition(function(position){ $(".content div.item2").text("你的位置在:北緯"+position.coords.latitude+" 東經"+position.coords.longitude); },function(error){ $(".content div.item2").text(error.code+","+error.message); },{ enableHighAccuracy:false, timeout:1000, maximumAge:5000 });
不須要特別精確的境況下,建議enableHighAccuracy爲false,不然耗時耗電。maximumAge值能夠是Infinity,表示始終使用上次的座標信息。
二、另外一個方法,watchPosition(),跟蹤用戶的位置。接收的參數與getCurrentPosition()一致。
該方法第一次取得位置信息後,會就地等待系統發出位置改變的信號。
能夠調用clearWatch()方法取消跟蹤。
內容來源於JavaScript高級程序設計。