2010-01-21 35 views
6

這是我的情況;我已經構建了一個非常簡單的Web應用程序,它查找用戶的位置並將其繪製在Google地圖上。 這裏是我的代碼:http://pastebin.com/d3a185efdiPhone - Native App GeoLocation VS Web App地理位置

當我測試它時,我的位置被檢測爲距離我實際站立的地方大於500米。

當我打開谷歌地圖或Gowalla的我的位置是正確的範圍內<20米?

所以我的問題是:原生iPhone應用程序是否從Web應用程序獲得更高的準確率?

如果是這樣,爲什麼?

回答

3

根據該規範,webapp的地理位置應該使用什麼定位方法最適合在任何情況下 - 因此從理論上講,人們會認爲它使用GPS時可用。在rohit的「最佳答案」中關聯的討論對我來說似乎不算什麼 - 這是另一個,有人向你和其他聲稱獲得準確GPS數據的用戶報告類似問題(向下滾動至評論9月26日至28日):

http://www.thecssninja.com/javascript/geolocation-iphone

但它似乎是地理位置的東西是越野車依然。我懷疑你的問題基本上就是這樣,一些錯誤。

0

我認爲一個webapp依賴於一個geoip服務(盡其所能...)將您的IP地址轉換爲GPS座標。 例如:service ex

但是這樣的方法來檢索座標不能爲使用一個GPS設備(如在3G或iPhone 3GS的包括一個)「經典」的一個精確到真正檢索您的實際位置,而不是像geoip服務那樣最接近它。

更新:在筆記本電腦上使用谷歌地圖時會使用GEOIP,但也許您的問題是:「當我在網頁中使用HTML 5位置對象時,它是來自GPS硬件還是來自geoip服務?「。這我真的不知道,我會說它使用geoip服務,而不是GPS硬件,但我不是100%肯定...

+0

這是不是真的我的問題,我敢肯定你的設備的HTML 5地理位置API檢查是否是GPS能力,如果沒有回落到的GeoIP 。 所以,我的問題仍然存在,原生iPhone應用程序使用相同的方法(或同等準確性)的網絡應用程序或他們以某種方式優越? – Sam 2010-01-21 16:52:25

+1

我認爲這取決於瀏覽器的實現:假設移動Safari瀏覽器從GPS硬件中檢查上次檢索到的位置,並根據需要將其返回到網頁,我不明白爲什麼web應用程序和本地應用程序:webapp/objC之間的流程最終會詢問相同的位置。 – yonel 2010-01-22 07:57:39

+0

這就是我的想法,但如果是這樣的話 - 爲什麼精度有很大差異? – Sam 2010-01-22 10:53:06

0
+0

是的,我的網絡應用程序爲iPhone和Android手機使用'navigator.geolocation.watchPosition()',爲所有其他應用程序使用'navigator.geolocation.getCurrentPosition()'。 我不確定谷歌地圖使用什麼,但因爲它是基於網絡的,我會想象它使用相同的JS。 – Sam 2010-01-22 10:51:56

0

谷歌地理api首先它試圖找到你的位置設備的GPS,如果失敗它去細胞三角測量(虛擬GPS)如果失敗它嘗試使用WiFi MAC和IP地址,最後一個嘗試是使用客戶端IP獲取他的位置

1

我覺得你得到不同的結果,因爲你是俯瞰的時間方面。 GPS使用大量電池,並且只能根據指令啓動。

HTML5 getCurrentPosition在GPS有機會準確地在您的位置上「區域化」之前拍攝座標的快照。另一方面,谷歌地圖應用程序啓動,然後觀察您的位置,準確性隨着時間的推移而增加(您都知道標記是如何移動的)。 HTML5也支持這種觀看位置的功能。

附註!根據我在iPhone上的經驗,該設備實際上會存儲您的位置一段時間,這意味着如果我啓動Google地圖並讓它位於我的位置,關閉它然後啓動我的webapp並使用getCurrentPosition一個同樣準確的讀數。

精度是所有關於讓GPS做它的事..