web-dev-qa-db-ja.com

HTML5ジオロケーションとGoogle Maps Geolocation API

制限付きアクセスを使用する理由について少し混乱しています Google Maps Geolocation API 無料および(明らかに) 無制限navigator.geolocation HTML5の機能?

Googleバージョンの唯一の利点は、IE8などのブラウザーのサポートが強化されていることです。ここで重要なものを見逃していますか?それともほとんど違いはありませんか?


さらに調査したところ、navigator.geolocation in Chrome実際にGoogle apiを呼び出して情報を取得します( 6年前のこの回答によるバックアップ )。 、それはまだ制限されていますか?その場合、どの期間にどのくらいですか?

22
Liam

Google Maps Geolocation APIは、近くにあるWifiネットワークとセルタワーに関するユーザー提供のJSONデータを受け入れ、ユーザーの位置の推定値を生成するHTTPエンドポイントです。

HTML5 navigator.geolocationオブジェクトは、いくつかの操作セットを実行するブラウザAPIを提供し、ユーザーの位置の推定値を生成します。 W3C地理位置情報仕様 から:

API自体は、基礎となる位置情報ソースに依存しません。位置情報の一般的なソースには、グローバルポジショニングシステム(GPS)と、IPアドレス、RFID、WiFiおよびBluetooth MACアドレス、GSM/CDMAセルIDなどのネットワーク信号から推測される位置、およびユーザー入力が含まれます。

navigator.geolocation関数は、デバイスのGPSハードウェアに情報がある場合は、その情報を含め、ブラウザーアプリケーションで利用可能な情報を利用できます。もちろん、到達可能なサードパーティのWeb API(おそらく、Google Maps Geolocation APIを含む)を利用することもあります。使用する必要がある、または使用する必要がある指定された必須のアプローチまたは入力はありません。ブラウザはその力で何でもできるので、位置を推定できます。特定の実装に応じて、Googleのアプローチよりも良いまたは悪い仕事をする場合があります。または、ブラウザが(ご提案のとおり)実際にGoogleのAPIを直接使用する場合があります。

つまり、GoogleのAPIは、「このセルとWifi情報に基づいて、現在地を教えてください」という方法です。 HTML5 APIは、ブラウザに「インターネットにアクセスでき、デバイスで利用できるすべての物理的な入力があります。どういうわけか自分がどこにいるかを調べます」と伝える方法です。

GPSが存在しない場合、ブラウザはその位置情報の作業をGoogleなどのサードパーティサービスにアウトソースする可能性があることを知って驚かない。ブラウザーベンダーは、一般的にブラウザーの作成に関心があります。セル/ Wifiデータを位置情報に変換するという難しい問題を解決するための堅牢なサービスを作成しません。さらに、さまざまな塔やWifi SSIDの位置に関する膨大な地理空間データが必要です。すべての情報をローカルに保持するためにブラウザが肥大化し、ベンダーが情報をリモートでホストしようとする試みは、機能的にGoogleの既知の優れたサービスに対する競合他社をセットアップします。

18
apsillers

HTML5 APIはモーダルポップアップをトリガーして、ユーザーに許可を求めるように要求しますが、Google Maps Geolocation APIはそれをバイパスします。位置を収集する方法自体は非常に似ていますが、HTML5の範囲はブラウザがどのように実装するかに応じてさらに深くなります。

HTML5の例- https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation

Googleマップの位置情報の例- http://webkay.robinlinus.com/

また参照: https://developers.google.com/maps/articles/geolocation

  • Maps APIは、HTML5をサポートしていない古いブラウザー、またはもちろん非ブラウザークライアント(ネイティブなど)のオプションを提供する場合があります
  • Maps APIには、1日の無料割り当て後に$がかかります
  • ほとんどの場合、HTML5メソッドは他のメソッドよりも優先されるべきです
6
Panjuices