6

I want to use the google geocode via HTTP functionality to translate a city name into longitude and latitude in for my AJAX web application.

However, it appears that no callback function exists for the HTTP geocoder functionality

http://code.google.com/apis/maps/documentation/geocoding/index.html

Is that true, no callback function exists?

Because if that is true, it essentially means that the Google geocode via HTTP api is useless when used with AJAX because JavaScript will throw a crossdomain exception error.

Any ideas on how I can use the geocode via HTTP api in my AJAX web application in JavaScript?

Note: I do not want to use the full blown Google Maps API which is approx 200kb download (i.e. GClientGeocoder). I want to use the HTTP api b/c of it's super quick responsiveness and lack of needing my web users from having to download the huge full blown interactive google maps api.

E.g. http://maps.google.com/maps/geo?output=json&sensor=false&key={API_KEY}&q={CITY,STATE}&CALLBACK=????

Thanks

4

8 に答える 8

1

ドキュメンテーションを見て、それが見つからず、Andrew と Mike の両方が「はい」と言っておらず、その方法を教えていない場合は、答えがあると思います。

そして、すべての人にサービスのドキュメントを読んでもらいます:

10.13 Maps API ドキュメントに記載されている識別規則に従わないことを含め、サービスを使用する際に、サービスの ID を Google から隠したりマスクしたりすること。または 10.14 Maps API ドキュメントのポリシーに違反するか、Google のソフトウェア原則に違反する (...)

また

このサービスは、マップ上にアプリケーション コンテンツを配置するために、REST インターフェイスを使用して静的な (既知の) アドレスをジオコーディングするように設計されています。ユーザー定義の住所の動的なジオコーディング (たとえば、ユーザー インターフェイス要素内) については、JavaScript クライアント ジオコーダーまたは Maps API for Flash クライアント ジオコーダーのドキュメントを参照してください。ジオコーディングは、時間とリソースを大量に消費する作業です。可能な限り、既知の住所を事前にジオコーディングし (ここで説明するジオコーディング サービスまたは別のジオコーディング サービスを使用)、独自に設計した一時キャッシュに結果を保存します。

しかし、もう一度Google Maps API V3 Geocoderを試すことができます

于 2009-06-08T00:52:53.940 に答える
1

私のブログ投稿http://jawtek.blogspot.com/2009/03/unwritten-guide-to-yahoo-query-langauge.htmlで説明されているように、Yahoo Query 言語を使用できます。

次のような yql ステートメントを使用できます。

select * from json where
  url="http://maps.google.com/maps/geo?output=json&sensor=false&q=Indianapolis,In"

次に、html にスクリプト タグを追加します ( document.createElement ('script') で実行できます) 。 &format=json&callback={your function here} ここで、{your yql here} は、yql ステートメントの URI エンコード バージョンに置き換えられます。

于 2009-05-10T04:52:06.033 に答える
0

Google Maps API を見てください。ジオコーディング サービスを使用するコールバックを持つ関数がいくつかあります。

http://code.google.com/apis/maps/documentation/reference.html#GClientGeocoder.getLatLng

于 2009-05-09T23:55:41.907 に答える
0

サーバー側のページを作成してジオコーダーにアクセスするという提案に賛成です。私は似たようなことをしており、うまく機能しています。PHP でのジオコーダーの操作に関する優れた記事がここにあります。

また、技術的には、Google マップにデータを表示しない限り、Google のジオコーダーを使用することは許可されていないことに注意してください。ただし、Google が実際にチェックするかどうかはわかりません。

于 2009-05-11T20:32:32.053 に答える
0

私もあなたが上で説明した課題に遭遇しました。ご指摘のとおり、Google は Geocode API URL へのクロスドメイン HTTP アクセスを防止しています。

これにより、クライアント側のスクリプトを使用する場合の有用性が大幅に低下します。この課題に対して私が見つけた唯一の解決策は、Google Maps Geocode API からの応答をクライアント側スクリプトに中継するサーバー側プロキシ サービスを作成することでした。

このプロセスを説明する非常に長いブログ投稿を書きました。

于 2010-09-23T17:33:34.983 に答える