教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

問答>HTML&JS+前端>如何監(jiān)視移動設備的位置變化?

如何監(jiān)視移動設備的位置變化?

來源傳智教育2022年06月27日 14時04分25秒

  有一個名詞叫做LBS(Location based Service,基于位置的服務),它是通過電信移動運營商的無線電信網(wǎng)絡(如GSM網(wǎng)、CDMA網(wǎng))或外部定位方式(如GPS)獲取移動終端用戶的位置信息(地理坐標,或大地坐標)。

  getCurrentposition()方法只在調(diào)用時會得到位置信息,在LBS應用中,檢測用戶位置變化是非常常見的需求。一個做法是通過循環(huán)調(diào)用的方式去檢測位置變化。

  例如,設置了一個10s作為獲取位置的間隔,這樣做的缺點是:編程人員無法知道用戶當前的速度。如果在飛機高鐵上,10s可能已經(jīng)走了很長一段距離,這樣提供給用戶的位置信息可能是延遲的,如果將間隔設置得很短,又會非常耗電、耗能,如果用戶長時間沒動,這些查詢都是無用的。

  為了解決這個人問題,Geolocation還提供了watchPosition()方法,可以讓系統(tǒng)通知編程人員用戶的位置發(fā)生了變化。

  watchPosition()方法和getCurrentPositon()方法在調(diào)用上類似,但方法功能與getCurrentPosition()的區(qū)別是非常明顯的。調(diào)用該函數(shù)時會返回一個watchID,這個ID和setInterval()函數(shù)返回的ID類似,可以用于清除此次的監(jiān)視操作。

  watchPosition()方法也接受相同的3個參數(shù):success、error回調(diào),以及一個PositionOptions對象。

和我們在線交談!