API之使用JS進行地理位置定位

js獲取地理位置的接口navigator.geolocationgit

 

geolocation對象有三個方法瀏覽器

1.getCurrentPosition緩存

2.watchPosition函數

3.clearWatchspa

 

一.getCurrentPosition方法用於獲取用戶的地理位置code

格式:navigator.geolocation.getCurrentPosition(callback,[callback],[option])對象

第一個callback函數,用來處理成功獲取用戶地理位置的狀況接口

  函數會被傳入一個對象,該對象保存了有關本次定位的具體信息get

  該對象包含兩個屬性回調函數

  timestamp 保存了獲取位置時的時間戳

  croods 也是一個對象,保存了具體的位置信息

  coords.latitude:緯度
  coords.longitude:經度
  coords.altitude:高度
  coords.accuracy:所提供的以米爲單位的經度和緯度估計的精確度
  coords.altitudeAccuracy:所提供的以米爲單位的高度估計的精確度
  coords.heading: 移動的角度方向,相對於正北方向順時針計算
  coords.speed:以米每秒爲單位的設備的當前對地速度

  

第二個callback函數,用來處理獲取位置失敗的狀況

  該函數也會被傳入一個對象 包含了具體的錯誤信息

  該對象包含兩個屬性

  code 保存了錯誤的緣由 值爲1,2,3

    1表明沒有權限

    2表明沒法定位

    3超時

  message 保存了額外的錯誤信息

 

option 對象來決定定位的細節

  option對象有三個屬性能夠來描述定位的具體細節

  enableHighAccuracy 默認爲false 設置爲true能夠開啓更精準的定位,同時也會增長響應時間

  timeout 設定超時時間 單位爲毫秒 默認無限大 設置負數 會變爲0

  maximumAge 地理位置的緩存時間 默認爲0 設置負數也爲0

二.watchPosition

  watchPosition的調用與getCurrentPosition是相同的,只不過watchPosition會不斷的獲取位置,watchPosition會返回一個ID,把該值傳入clearWatch便可中止輪詢

  就像是setInterval和clearInterval那樣的組合,固然定位失敗一次,也會致使watchPosition循環中止,而後調用第二個callback來處理錯誤。

三.權限

  是否能正常使用該API,取決於用戶的選擇,由於位置信息每每屬於用戶的隱私,爲了防止惡意代碼,瀏覽器在使用定位時,一般會向用戶詢問,若是用戶拒絕賦予你腳本的受權,那麼定義處理失敗的回調函數是頗有必要的。

相關文章
相關標籤/搜索