現在、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は検索結果を拡張していますか?