在PC端實現HTML5-geolocation的一些細節

最開始,想在本身的簡歷中實現這樣一個地圖效果:自動獲取HR的當前位置,與我所在位置作距離差。如在相應範圍以內就彈出相應對話框套套近乎巴拉巴拉。初步代碼寫好後在瀏覽器裏測試(mac版chrome),發現瀏覽器在向http://www.googleapis.com請求以得到經緯度。看到這個域名心就涼了一半,因爲衆所周知的緣由,也就是說不那啥geolocation就根本獲取不了地理信息。翻了一些文檔,請教了一些高手,發現這個問題在桌面瀏覽器中多是無解的。chrome

 

HTML5文檔中,關於geolocation的位置信息,記錄來源包括GPS、IP地址、RFID、WIFI和藍牙的MAC地址、以及GSM/CDMS 的ID等等。但規範中沒有規定使用這些設備的前後順序,在具體的實現中,手機等移動設備會優先使用GPS定位,而筆記本和不帶GPS的平板,最準的定位是WIFI,至於網線上網的臺式機,通常就只能使用IP來定位了,準確度實在堪憂。

在這些方法裏,GPS定位最好理解,衛星直接給出定位數據。而WIFI和IP地址定位,都不是瀏覽器自己可以實現的。這兩種方式都必須將IP地址或WIFI信號收集到的周圍路由信息,上傳到某個服務器,由服務器的查詢計算位置信息,而後返回給瀏覽器。然而火狐、chrome、Opera等着主流瀏覽器都是用谷歌提供的API來查詢,被牆的可能很是大。api

 

最終可能的解決方案就是:PC上不要用這個API。一來查詢API被牆,二來,就算沒被牆,最多也只能作到經過IP地址找到你的城市。瀏覽器

 

技術上可能確實無解,但也有一些從交互的角度解決問題的思路:好比故意定位錯誤,給用戶手動變動當前座標的提示(經過搜索或者拖拽開始指針)。服務器

 

以前在知乎的提問:https://www.zhihu.com/question/39362267測試

相關文章
相關標籤/搜索