2011-09-24 26 views
13

Tại sao định vị địa lý HTML5 cho phép bạn chia sẻ vị trí của mình? Mục đích chính của việc sử dụng vị trí địa lý là gì, vì bạn cũng có thể có được vị trí với địa chỉ IP. Có sự khác biệt nào giữa hai phương pháp này không?Tại sao nên định vị địa lý HTML5?

Tôi hỏi vì vị trí địa lý yêu cầu sự cho phép của người dùng và cũng không hoạt động trên tất cả các trình duyệt.

+0

Bạn không thể có được một vị trí _accurate_ sử dụng địa chỉ IP. Điều tốt nhất có thể làm là cung cấp vị trí của ISP cung cấp địa chỉ IP. Tôi từng làm việc cho một công ty Hoa Kỳ có địa chỉ IP từ Anh ... –

+1

@John Saunders - để công bằng, đó là một thất bại của cơ sở dữ liệu vị trí IP để luôn cập nhật, thay vì địa chỉ IP chính nó đang ở sai vị trí. – Spudley

+2

Tại sao? "Cơ sở dữ liệu vị trí IP" chưa bao giờ được, và không bao giờ có thể là một cơ sở dữ liệu về vị trí của các máy tính sử dụng một địa chỉ IP cụ thể. Nó không bao giờ có thể là bất cứ điều gì nhiều hơn một cơ sở dữ liệu của các địa điểm của các nhà cung cấp dịch vụ Internet đã đưa ra các địa chỉ IP. Tốt nhất, nó có thể giữ vị trí nơi ISP _though_ địa chỉ IP sẽ được sử dụng. Và trong trường hợp của tôi, định tuyến đã thực sự được thực hiện ở London, vì vậy tất cả các gói cho Hoa Kỳ đã đi qua Vương quốc Anh! –

Trả lời

11

HTML5 GeoLocation có xu hướng là nhiều chính xác hơn GeoLocation dựa trên IP.

GeoLocation dựa trên IP phụ thuộc vào cơ sở dữ liệu được liên kết với ISP để tìm ra vị trí của bạn. Điều này không hoạt động tốt khi dịch vụ ISP của bạn có diện tích rất lớn và cung cấp địa chỉ IP động. Địa chỉ trong một thị trấn hiện nay có thể là 100 dặm vào ngày mai. Hơn nữa, những cơ sở dữ liệu thường không được cập nhật thường xuyên. Nếu ISP của bạn bán các khối IP hoặc chuyển chúng sang một thị trấn mới, cơ sở dữ liệu có thể vẫn không chính xác nghĩ rằng bạn đang ở một nơi khác.

Vị trí HTML5 sử dụng các dịch vụ do trình duyệt của bạn cung cấp để tìm ra vị trí của bạn. Nếu máy tính của bạn có tích hợp GPS (chẳng hạn như trên nhiều thiết bị di động và một số máy tính xách tay), máy tính sẽ biết chính xác vị trí của bạn. Điều này làm cho nó hữu ích hơn nhiều cho các ứng dụng web có thành phần điều hướng hoặc vị trí. Đối với các thiết bị không có GPS, nó thường có thể cung cấp một xấp xỉ rất tốt dựa trên các tín hiệu không dây đã biết gần đó và các yếu tố khác, chẳng hạn như truy tìm bộ định tuyến mà máy tính của bạn đi qua khi kết nối với internet. Việc triển khai chính xác phụ thuộc vào máy tính, phần cứng nào có sẵn và cách trình duyệt chọn làm việc.

Ví dụ, khi tôi kiểm tra một dịch vụ vị trí dựa trên IP, nó nói rằng tôi đang ở trong một thành phố lớn đặc biệt trong khu vực nói chung tương tự mà tôi đang sống, nhưng nó thực sự là khoảng 50 dặm. Khi tôi sử dụng dịch vụ dựa trên vị trí HTML5 để tìm ra vị trí của mình, nó chỉ tắt khoảng 20 khối.

Nếu bạn đang phát triển một ứng dụng web cần dữ liệu vị trí, hãy thử bằng cách sử dụng HTML5 GeoLocation nếu có thể. Thiết lập dự phòng, để nếu vị trí HTML5 không thành công, bạn có thể sử dụng giải pháp GeoIP thay thế. Bằng cách này, bạn sẽ nhận được độ chính xác tối ưu trên các trình duyệt và thiết bị được hỗ trợ, nhưng vẫn sẽ có giải pháp tại chỗ khi dữ liệu HTML5 không có sẵn.

Nếu bạn sử dụng geolocation-javascript project from Google Code, bạn có thể sử dụng đoạn mã sau:

//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' cũng có thể thực hiện yêu cầu Ajax, vì vậy bạn có thể chỉ cần gọi' error_callback() 'trong khối' else'. –

+0

@ alpha123 điểm tốt, đó sẽ là một cách hiệu quả hơn để làm điều đó. – nhinkle

8

Vị trí địa lý là chính xác hơn địa chỉ IP, mặc dù cả hai đều có thể giả mạo.

Địa chỉ IP chỉ cung cấp cho bạn quốc gia và khu vực chung.

Định vị mang đến cho bạn:

  • tọa độ địa lý (vĩ độ và kinh độ)
  • Speed ​​(giả sử bạn đang ở trên một thiết bị có thể đo lường này, hầu hết các máy tính bảng và điện thoại thông minh có thể)
  • Altitude (điều này cũng phụ thuộc vào thiết bị)
  • Độ theo chiều kim đồng hồ từ hướng bắc (một lần nữa, giả sử thiết bị hỗ trợ điều này)

http://diveintohtml5.ep.io/geolocation.html có một số thông tin tốt về vị trí địa lý và API vị trí địa lý HTML5. Here's Đề xuất ứng cử viên của W3C.

2

Sự khác biệt chính mà bạn sẽ thấy là tính chính xác. Địa chỉ IP chỉ cung cấp cho bạn một ý tưởng rất chung về vị trí của một người nào đó ... Vị trí địa lý sẽ cho bạn biết chính xác vị trí của chúng. Để đọc thêm về vị trí địa lý, hãy truy cập here và bản trình diễn về mức độ chính xác mà nó có thể được tìm thấy here

1

Khả năng định vị HTML5 cung cấp cho khách hàng (trình duyệt) khả năng cung cấp thông tin vị trí của máy. Đây là khả năng đơn đặt hàng của độ lớn chính xác hơn so với vị trí IP. Ví dụ: khách hàng có thể cài đặt phần cứng GPS thực tế hoặc có thể định vị địa điểm bằng các điểm GSM hoặc WiFi. Vị trí của IP mặt khác là rất thô và một nơi nào đó giữa không phải lúc nào cũng chính xác và gây hiểu nhầm.

2

Lấy vị trí của người dùng thông qua địa chỉ IP là không chính xác. Vị trí của địa chỉ IP chủ yếu dựa trên vị trí của máy chủ thực, có thể được yêu cầu. Thường thì điều này ở xa vị trí của người dùng thực tế, vì vậy nó chỉ cung cấp vùng cơ bản.

Vị trí địa lý HTML5 mặt khác chính xác hơn, nhưng thông tin của người dùng được sử dụng để xác định vị trí và thường cũng tăng tốc cùng với một số thứ khác. Điều này được dựa trên GPS của thiết bị nếu có, và nếu không thì thông tin được nhập bởi người dùng. Rõ ràng đây là cách chính xác hơn. Cả hai phương pháp có thể được giả mạo mặc dù.

2

Nhận vị trí theo địa chỉ IP chỉ cho một vị trí mơ hồ (hiếm khi chính xác hơn thị trấn và thường ít chính xác hơn, tùy thuộc vào vị trí và ISP của bạn).

Đôi khi hoàn toàn không chính xác: nếu tôi sử dụng VPN để kết nối với mạng công ty, tôi sẽ hiển thị ở văn phòng của họ vì tôi sẽ có địa chỉ IP từ văn phòng, nhưng tôi thực sự có thể kết nối từ bất cứ nơi nào trên thế giới.

Vị trí địa lý HTML5 có thể chính xác hơn nhiều - nếu bạn có bộ thu GPS trong thiết bị của mình, thì nó hoàn toàn chính xác, nhưng ngay cả khi không có điều đó, ở những khu vực đông dân cư, nó có thể đạt được vị trí của bạn với độ chính xác 20 mét hoặc ít hơn bằng cách ánh xạ các tín hiệu mạng không dây cục bộ. Và nó không quan trọng bạn đã kết nối như thế nào, nó sẽ luôn chính xác.

Vì vị trí địa lý HTML5 rất chính xác nên được coi là rủi ro bảo mật, vì vậy thông số cho biết bạn phải cấp quyền trước khi trang web có thể sử dụng dữ liệu vị trí của bạn. Ngoài ra, không phải tất cả các trình duyệt hoặc máy có thể có khả năng cung cấp dữ liệu định vị. Do đó, trang web phải có khả năng đối phó với những người dùng không cung cấp và không thể dựa vào nó được cung cấp.

Vị trí địa chỉ IP không có loại giới hạn này vì ánh xạ vị trí được thực hiện bởi máy chủ bằng cách sử dụng dữ liệu bản đồ vị trí IP có sẵn công khai. Người dùng cuối không thể tránh đưa ra địa chỉ IP của họ, vì vậy họ không thể ngăn trang web ánh xạ chúng bằng cách sử dụng nó.

Vì vậy, cả hai hoàn toàn khác nhau.

Các vấn đề liên quan