3

現在、GoogleのAJAXAPIで髪の毛を失っています。私がやっていることは、ユーザーに場所の代替結果リストを提供するために、構造化された位置データをGoogleローカル検索APIクエリに変換することです。

元。:

http://ajax.googleapis.com/ajax/services/search/local?v=1.0&key=XXX&hl=en_US&mrt=localonly&rsz=large&q=pizza+Neustadt+DE

ただし、APIは時々非常に奇妙な動作をし、私が渡す特定のパラメーターを考慮に入れていないことがよくあります。例えば:

Googleマップで「termRomeRomaIT」を検索すると、期待どおりにローマのすべての用語が見つかります。APIで同じ検索を繰り返すと、結果はゼロになります(これを機能させるには、「ローマ」または「ローマ」のいずれかを削除する必要があります。ここではローマが行政区域であり、ローマは都市名です)。

何故ですか?

もう一つの例。ドイツにはノイシュタットと呼ばれる20の異なる町、都市、行政区があります。これで、Googleマップで検索すると、地域などの追加の修飾子を指定しない限り、1つしか見つかりません。

さて、APIレベルでは、緯度/経度パラメータをNeustadtのクエリと一緒に渡すときに、ジオコーディングを見て正しいNeustadtを選択するのが賢明だと思いました。しかし、それは起こりません。常に同じNeustadtを選択し、地理データを無視します。

q=pizza+Neustadt+DE&sll=48.8053,11.7579

バウンディングボックス検索を行うときにも同様の問題が発生しました。バウンディングボックスは完全に無視されているようです。これは、100km離れた結果​​データをまだ取得しているためです。

q=pizza+Neustadt+DE&sll=48.8053,11.7579&sspn=0.00001,0.00001

最後の結果は同じ都市でもありません。小さなバウンディングボックスはデータをまったくもたらさないのではないでしょうか?サイズがゼロのBBoxを渡すこともできますが、それでも結果は得られます。

Local Search APIに関する実際には非常に広範なドキュメントがあることは知っていますが、クエリをいつどのように構造化して評価する必要があるかについては詳しく説明されていないため、適切な結果を得るのは非常に困難です。

Googleローカル検索を理解するためのヒント、ヒント、提案はありますか?

更新: 私は本当に奇妙な何かを見つけました。誰かがこのウェブサイトに行ってくれませんか:

http://code.google.com/apis/ajaxsearch/documentation/localsearch/index.html

firebugを開き、この検索クエリを入力するときにHTTPトラフィックを監視します。

test Rome Roma IT

マップ上にたくさんの結果が表示されます。次に、AJAXを介して接続されたURLをコピーし、コマンドラインでそのURLにリクエストを送信します。

curl "http://www.google.com/uds/GlocalSearch?key=internal-sample&v=1.0&rsz=large&sll=41.97684819454683%2C12.486648559570312&sspn=0.204185%2C0.549316&q=test%20Rome%20Roma%20IT&lssrc=lsc&lscstyle=final&start=0&callback=_callbacks_._5g139yfuc"

今、私はゼロの結果を得ます。どうしてそうなるのでしょうか?それは間違いなくキーまたはコールバックの引数ではありません。そのクエリの結果を変更せずにそれらを削除しました。

クエリがサーバーの1つから来た場合、Googleは検索結果を拡張していますか?

4

1 に答える 1

2

私はまったく同じ問題に遭遇しました。ライセンスの問題と、GoogleがAPIを介して公開し、マップ/ Google検索ページに表示するものが異なる検索の組み合わせであるという事実に起因しているようです(検索、マップ、ベース、データなど)

ライセンスの問題については、API呼び出し(理論的には自動化可能)を介したリクエストと比較して、ユーザーがブラウザを経由したときにGoogleがより多くの情報を表示できるようです。

たとえば、ここを参照してください。

于 2009-10-22T08:06:58.077 に答える