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

相關文章
相關標籤/搜索