H5定位問題
寫在最前面
- HTML5 Geolocation API 用於得到用戶的地理位置。
- 鑑於該特性可能侵犯用戶的隱私,除非用戶贊成,不然用戶位置信息是不可用的。如:
- 目前常見的座標系有三種:地球座標(WGS84,國際公認座標),火星座標(GCJ02,國家標準,適用於高德百度地圖大陸+港澳部分、Google地圖大陸部分),百度座標(BD09,適用於百度地圖大陸+港澳臺部分)。
- 咱們經過瀏覽器所在硬件設備獲取地球座標,而後經過接口把地球座標轉爲火星座標。(世面上的app,也是一致的,惟一的差異:是否用了三方SDK)。
- 定位方式:(不一樣方式會致使精度問題)
- 基於gps ,精度最高(約10-100米左右),但室內效果通常。
- 基於運營商基站,精度最差(約1000-3000米左右),定位慢。
- 基於WiFiWIFI路由器,精度次之(約100-200米左右),受周圍WIFI數量和分佈影響,須要打開手機WIFI開關。
實現方法:
- 經過getCurrentPosition或watchPosition方法來獲取地球座標,個別型號手機getCurrentPosition方法會比較慢,因此實際應用中經常使用watchPosition方法。
- clearWatch(watchId)用來中止watchPosition。可是此處在ios微信內置瀏覽器內有個大坑,獲取的watchId是undefined,清不掉watchPosition,一直在watch。如何解決:外層設置一個全局變量來控制,只在第一次watch成功時執行邏輯代碼,後面不執行。
- H5獲取座標後需轉換爲火星座標。
參考連接1 參考連接2html
歡迎關注本站公眾號,獲取更多信息