ストア ファインダーを構築しており、次のワークフローを実装したいと考えています。
- ユーザーが場所を入力
- Google Geocoder を使用してジオコーディングします
- 境界ボックスのジオコーディング結果を調べます
- 指定された境界に収まるようにマップをズームインし、それらの境界内の店舗を照会します
- マップの境界内に店舗がある場合は、それらをすべてマップに表示します
- しかし、マップのバウンディング ボックス内に店舗がない場合は、さらに 1 レベルズームアウトし、いくつかの店舗が見つかるまで (5) を繰り返します。
上記でも構いませんが、お店が見つかるまで実際に地図が動いていないように見える方がUX的には良いと思います。
では、次のように Google マップにクエリを実行することは可能でしょうか:境界ボックスが与えられた場合、Google マップを実際に読み込まずに、その特定の境界ボックスを含む正しくズームされた Google マップの境界を見つけることができますか?
私のページのマップ div の幅に依存するため、それが可能かどうかはわかりません。
geocoder.geocode( {'address': search_text }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.panTo(results[0].geometry.location);
map.fitBounds(results[0].geometry.bounds);
var bounds_to_check_for_stores = map.getBounds();
// QUESTION: get bounds_to_check_for_stores without the three preceding steps?
}
}