2016-03-04 70 views
17

Tôi hơi bối rối vì sao tôi chọn sử dụng quyền truy cập giới hạn Google Maps Geolocation API qua tính năng miễn phí và (rõ ràng) unlimited navigator.geolocation của HTML5?Vị trí địa lý HTML5 so với Google Maps Vị trí địa lý api

Theo như tôi có thể nói lợi thế duy nhất của phiên bản Google là nó tăng hỗ trợ cho các trình duyệt như IE8. Tôi có thiếu cái gì quan trọng ở đây không? Hay có sự khác biệt nhỏ?


On tiếp tục điều tra, chúng tôi nhận thấy rằng Chrome thực sự làm một cuộc gọi đến api Google để có được thông tin (backed up by this answer from 6 years ago). Vì vậy, điều này đặt ra câu hỏi, là nó vẫn còn hạn chế? Nếu vậy bằng bao nhiêu trong khoảng thời gian nào?

Trả lời

11

API vị trí địa lý của Google Maps là điểm cuối HTTP chấp nhận dữ liệu JSON do người dùng cung cấp về mạng Wifi và tháp di động lân cận và tạo ước tính vị trí của người dùng.

Đối tượng HTML5 navigator.geolocation cung cấp API trình duyệt một số tập hợp hoạt động và sau đó tạo ước tính vị trí của người dùng. Từ số W3C geolocation spec:

Bản thân API là bất khả tri của các nguồn thông tin vị trí cơ bản. Các nguồn thông tin vị trí phổ biến bao gồm Hệ thống định vị toàn cầu (GPS) và vị trí được suy ra từ tín hiệu mạng như địa chỉ IP, RFID, WiFi và địa chỉ MAC Bluetooth và ID di động GSM/CDMA cũng như đầu vào của người dùng.

Chức năng navigator.geolocation có thể sử dụng bất kỳ thông tin nào có sẵn cho ứng dụng trình duyệt, bao gồm mọi thông tin từ phần cứng GPS của thiết bị, nếu có. Tất nhiên, nó cũng có thể sử dụng bất kỳ API Web của bên thứ ba nào (bao gồm, có thể, API vị trí địa lý của Google Maps) có thể đạt được. Không có cách tiếp cận hoặc đầu vào được yêu cầu cụ thể nào phải hoặc phải được sử dụng; trình duyệt có thể làm bất cứ điều gì trong khả năng của mình để thực hiện ước tính vị trí. Nó có thể làm một công việc tốt hơn hoặc tồi tệ hơn cách tiếp cận của Google, tùy thuộc vào việc triển khai cụ thể của họ hoặc trình duyệt có thể (như bạn đề xuất) thực sự trực tiếp sử dụng API của Google.

Tóm lại, API của Google là một cách để hỏi, "Dựa trên thông tin về ô và Wifi này, hãy cho tôi biết tôi đang ở đâu." HTML5 API là một cách để nói với trình duyệt, "Bạn có quyền truy cập vào Internet và tất cả các đầu vào vật lý có sẵn cho thiết bị của tôi; tìm hiểu tôi đang ở đâu, bằng cách nào đó."

Tôi không ngạc nhiên khi biết rằng, nếu không có GPS, trình duyệt có thể thuê ngoài công việc định vị của mình cho dịch vụ của bên thứ ba như Google. Các nhà cung cấp trình duyệt thường quan tâm đến việc thực hiện các trình duyệt , không viết một dịch vụ mạnh mẽ để giải quyết vấn đề khó khăn khi chuyển dữ liệu di động/Wifi thành thông tin vị trí. Hơn nữa, nó đòi hỏi một lượng lớn dữ liệu không gian địa lý về vị trí của các tháp khác nhau và các SSID Wifi. Nó sẽ bloat trình duyệt để giữ tất cả các thông tin tại địa phương, và bất kỳ nỗ lực cho thevendor để lưu trữ các thông tin từ xa sẽ có chức năng thiết lập một đối thủ cạnh tranh với dịch vụ đã được biết đến của Google.

+0

Vì vậy, về cơ bản, * lợi thế * của Google APi là bạn biết chính xác cách triển khai của nó? Trường hợp như phiên bản HTML5 là nhiều hơn ... mơ hồ .... trong nó thực hiện nhưng cuối cùng sẽ trả về một kết quả hợp lý hợp lý? – Liam

+1

HTML5 API có khả năng sử dụng các nguồn vật lý địa phương chính xác hơn (và chính xác hơn), như GPS hoặc không thể tùy thuộc vào việc triển khai và khả năng cung cấp phần cứng (ví dụ: thiết bị của bạn có GPS không?). Thật khó để nói nếu điều này làm cho nó "tốt hơn" hoặc "tệ hơn" là một API Web. Việc triển khai có thể khác nhau giữa các trình duyệt (và tính khả dụng của phần cứng), trong khi Google sẽ cung cấp cho bạn kết quả độc lập về trình duyệt nhất quán, vì vậy đó cũng là điều gì đó. – apsillers

+0

@Liam Tôi đã thêm một đoạn ngắn nữa vào cuối: định vị địa lý là một vấn đề khó khăn mà các nhà cung cấp không quan tâm giải quyết, và đó là một vấn đề đòi hỏi một lượng lớn dữ liệu không gian thực về towsers di động và mạng Wifi. – apsillers

3

API HTML5 sẽ kích hoạt cửa sổ bật lên phương thức để yêu cầu người dùng cấp quyền so với API vị trí địa lý của Google Maps sẽ bỏ qua điều đó. Các phương pháp tự thu thập vị trí rất giống nhau mặc dù phạm vi có cho HTML5 để đi sâu hơn tùy thuộc vào cách trình duyệt thực hiện nó.

Ví dụ HTML5 - https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation

Ví dụ Google Maps Định vị - http://webkay.robinlinus.com/

Cũng Ref: https://developers.google.com/maps/articles/geolocation

  • Maps API có thể cung cấp cho bạn một lựa chọn cho trình duyệt cũ hơn không hỗ trợ HTML5 hoặc tất nhiên là khách hàng không phải là trình duyệt (bản địa, v.v.)
  • API Maps sẽ tính phí bạn $ sau hạn ngạch hàng ngày miễn phí
  • Phương pháp HTML5 nên được ưu tiên hơn những phương pháp khác trong hầu hết các trường hợp
Các vấn đề liên quan