GoogleオートコンプリートのRESTAPIに問題があります。
特定の半径の予測のみを返す必要がありますが、「radius」パラメーターは誤った結果をフィルターしません。現在、私は他の都市や他の国からも結果を得ています。
要求された半径外の結果を含まないようにGoogleオートコンプリートを強制するにはどうすればよいですか?
GoogleオートコンプリートのRESTAPIに問題があります。
特定の半径の予測のみを返す必要がありますが、「radius」パラメーターは誤った結果をフィルターしません。現在、私は他の都市や他の国からも結果を得ています。
要求された半径外の結果を含まないようにGoogleオートコンプリートを強制するにはどうすればよいですか?
location
およびパラメータは結果に対するバイアスとしてのみ機能します。radius
現在、結果を特定の半径に制限する方法はありません。ただし、ドキュメントcomponents
で詳しく説明されているようにパラメータを渡すことで、結果を特定の国に制限できます。
location
、、radius
およびcomponent
パラメータを使用すると、ほとんどの場合、目的の結果が得られます。
オーストラリアのメルボルンに緯度50kmの場所があり、国がオーストラリアに限定されているエッフェル塔の検索例では、実際のエッフェル塔が半径内またはその国にないため、「エッフェル塔チョコレート&菓子」が返されます。リクエストは以下に制限されています:
オプションのパラメータを使用できますradius
。
radius — Place の結果を返す距離 (メートル単位)。半径を設定すると、結果が指定された領域にバイアスされますが、結果が指定された領域に完全に制限されるわけではないことに注意してください。ロケーション バイアスを参照してください 。
この例 (Google Maps API v3 の場所ライブラリを使用):
http://www.geocodezip.com/v3_GoogleEx_place-search.html
この答えから:
Google プレイスのオートコンプリート - 場所と半径が機能しない
rankby=distance を使用
結果を処理して、目的の半径内にないものを削除できます。
これを強制する唯一の方法は、検索を実行したときに得られる結果配列で自分でフィルタリングを行うことです。Autocomplete API は使用していませんが、Maps API を使用して検索しているようです。その場合、アイテムの座標を調べて、それらを目的のポイントと半径と比較できるGeocoderResult オブジェクトを取得します。
少しハックですが、非常に簡単です。