2011-09-24 66 views
13

爲什麼HTML5地理定位讓你分享你的位置?使用地理定位的主要目的是什麼,因爲您可以使用IP地址獲取位置。這兩種方法有什麼區別嗎?爲什麼選擇HTML5地理定位?

我在問,因爲地理位置需要用戶的許可,也不適用於所有瀏覽器。

+0

你不能使用IP地址的_accurate_位置。可以做的最好的是給出IP地址的ISP的位置。我曾經爲一家擁有英國IP地址的美國公司工作...... –

+1

@John Saunders - 公平地說,這是IP位置數據庫不能保持最新狀態,而不是IP地址本身位於錯誤的位置。 – Spudley

+2

爲什麼? 「IP位置數據庫」從來不是,也不可能是使用特定IP地址的計算機位置的數據庫。它絕不僅僅是發佈IP地址的互聯網服務提供商所在地的數據庫。最好的情況是,它可以保持ISP的位置,儘管IP地址將被使用。而就我而言,路由實際上是在倫敦進行的,所以美國的所有數據包都經過了英國! –

回答

11

HTML5地理位置往往是很多比基於IP的地理位置更準確。

基於IP的地理位置取決於與ISP相關的數據庫,以確定你在哪裏。當你的ISP服務於一個非常大的區域併發布動態IP地址時,這並不適用。今天在一個城鎮的地址可能在100英里外。此外,這些數據庫通常不會經常更新。如果您的ISP銷售IP塊或將其移動到新城區,數據庫可能仍然錯誤地認爲您在其他地方。

HTML5位置使用您的瀏覽器提供的服務來確定您的位置。如果您的電腦內置了GPS(例如在許多移動設備和一些筆記本電腦上),它就會知道,您的位置正好是。這使得它對具有導航或位置組件的webapps更有用。對於沒有GPS的設備,它通常可以根據附近已知的無線信號和其他因素提供非常好的近似值,例如跟蹤連接到互聯網時計算機所經過的路由器。確切的實現取決於計算機,可用的硬件以及瀏覽器如何選擇做什麼。

例如,當我檢查一個基於IP的位置服務時,它說我在一個特定的大城市,與我生活在同一個地區,但實際上距離大約50英里。 當我使用基於HTML5位置的服務來確定我在哪裏時,它只能關閉大約20個

如果您正在開發一個需要位置數據的web應用程序,嘗試儘可能使用HTML5 GeoLocation。設置回退,以便如果 HTML5位置失敗,則可以改爲使用GeoIP解決方案。通過這種方式,您將在支持的瀏覽器和設備上獲得最佳的準確性,但在HTML5數據不可用時仍會提供適當的解決方案。

如果使用geolocation-javascript project from Google Code,你可以使用下面的代碼:

//determine if device has geo location capabilities 
if(geo_position_js.init()){ 
    geo_position_js.getCurrentPosition(success_callback,error_callback); 
} 
else{ 
    // use an AJAX request to look up the location based on IP address 
} 
+1

'error_callback'可能會產生Ajax請求,所以你可以簡單地在'else'塊中調用'error_callback()'。 –

+0

@ alpha123好點,這將是一個更有效的方式。 – nhinkle

8

地理定位是一個lot比IP地址更精確,雖然兩者都可以僞造。

IP地址只是給你國家和一般地區。

地理位置爲您提供:

  • 地理座標(經度和緯度)
  • 速度(假設你能夠測量該設備上;大多數平板電腦和智能手機可以)
  • 高度(此也取決於在設備上)順時針
  • 度從北(再次,假定該設備支持此)

http://diveintohtml5.ep.io/geolocation.html有關於地理定位和HTML5地理定位API的一些很好的信息。 Here's W3C候選推薦。

2

您將看到的主要區別是準確性。 IP地址只能給你一個非常普遍的想法,說明某人可能在哪裏......地理位置會告訴你他們到底在哪裏。要詳細瞭解地理位置,請轉至here,並查看它的精確度。here

1

HTML5地理位置爲客戶端(瀏覽器)提供了機器位置信息的可能性。這可能比IP位置更準確。例如,客戶端可以安裝實際的GPS硬件,或者可以通過GSM或WiFi點對該位置進行三角測量。另一方面,知識產權的定位非常粗糙,並且不總是準確和誤導。

2

通過IP地址獲取用戶的位置遠遠不夠準確。 IP地址的位置主要基於可以請求的實際服務器的位置。通常這與實際用戶的位置很遠,所以它只提供基本區域。

另一方面,HTML5地理位置更精確,但用戶的信息用於確定位置,並且通常還可以加速其他一些事情。這是基於設備的GPS(如果有的話)以及用戶輸入的信息。顯然這樣更準確。這兩種方法都可以僞造。

2

通過IP地址獲取位置只會給出一個模糊的位置(它幾乎不比城鎮更準確,並且通常遠不如此準確,具體取決於您的位置和ISP)。

它有時也完全不準確:如果我使用VPN連接到我的公司網絡,我將顯示爲在他們的辦公室,因爲我將從辦公室獲得IP地址,但實際上我可以從在世界上任何地方。

HTML5地理定位可以更加準確 - 如果您的設備中有GPS接收器,則它是完全準確的,但即使沒有,在人口稠密的地區,它也可以以20米的精度獲得您的位置,或者較少通過映射本地無線網絡信號。無論你如何連接都無所謂,它永遠是準確的。

由於HTML5地理位置非常準確,因此被認爲是隱私風險,因此規範聲明您必須在網站使用您的凝膠定位數據之前提供許可。而且,並非所有瀏覽器或機器都能夠提供凝膠定位數據。因此,該網站必須能夠處理不提供它的用戶,並且不能依賴它提供。

IP地址位置沒有這種限制,因爲位置映射是由服務器使用公共可用的IP位置映射數據完成的。最終用戶無法避免給出他們的IP地址,所以他們無法阻止網站使用它來映射他們。

所以兩者是完全不同的。