現在、地図があるアンドロイドアプリを作っています。私は正常にマップを追加し、場所を検索することができます。私がオンラインで検索したものから、私は自分の街を設定し、自分の国にのみ検索を制限することができます。Androidマップで都市内のみを検索する
都市内でのみ検索を制限する方法を知っている人はいますか?
現在、地図があるアンドロイドアプリを作っています。私は正常にマップを追加し、場所を検索することができます。私がオンラインで検索したものから、私は自分の街を設定し、自分の国にのみ検索を制限することができます。Androidマップで都市内のみを検索する
都市内でのみ検索を制限する方法を知っている人はいますか?
それはかなりトリッキーなソリューションですが、あなたは、次の手順でそれを行うことができます。
ステップ1:Googleプレイスは、あなただけ(あなたのケース市の境界に)指定されたLatLngBoundsからの検索結果にバイアスをかけることができますが、検索エンジンはまだかもしれませんを所定の範囲外に返す。詳細は、Restrict autocomplete resultsを参照してください。これで十分だと思いますが、厳しい制限が必要な場合はstep2に従ってください。
ステップ2は:ステップ1コールPlaces.GeoDataApi.getPlaceByIdからすべての検索結果では、各場所に関する詳細情報を取得します。それぞれの場所のLatLngを取得します。次に、各がの範囲内にあるかどうかを確認することができます。指定した範囲内にある場合は、bounds.contains(LatLng)
になります。そうでない場合は、検索結果から手動で削除します。
もつとも:ステップ2ソリューションはPlacesAPI上の要求の数を乗算し、あなたが本当にこの厳しい制限が必要な場合は、二度考える必要があります!
解決策が見つかりました。 これは私の都市に設定されています。これを使用したい人には、長文と緯度を変更してください。 sb.append("&types=establishment&strictbounds&location=9.30684,123.305447&radius=2000");