目標: カスタム検索 (ジオコード) 機能を使用して、各結果を一覧表示してクリックし、マップに表示できるようにしたいと考えています。
募集: マップの範囲/ズーム レベルを適宜調整します。たとえば、「MA、USA」を検索するとマップがズームされ、マサチューセッツ州全体が表示されます。「ボストン、マサチューセッツ州、USA」を検索すると、ボストン エリアがズームされます。複数の結果を一覧表示する場合は、結果をクリックするときにも同じことが適用されます。
問題: geometry.bounds オブジェクトを fitBounds と共に使用できますが、ジオコーダーを使用して取得した結果の一部にその geometry.bounds オブジェクトがありません。
簡単な例: 「ボストン」を検索すると返されます
ボストン、マサチューセッツ州、米国
ボストン、インディアナ州、米国
ボストン、ケンタッキー州、米国
ボストン、ジョージア州 31626、米国
ボストン、セイラム、バージニア州 22713、米国
ボストン、ニューヨーク州 14025、米国
"Boston, KY" と "Boston NY 14025" には境界がありません。
質問: ジオコーダーの結果を適切なズーム レベルでマップに表示する信頼できる方法はありますか?
現在、私はそのようなものを使用していますが、これは醜く、ズームの問題は解決しません
if (results[0].geometry.bounds) {
map.fitBounds(results[0].geometry.bounds);
} else {
map.setCenter(results[0].geometry.location);
// eventually set zoom here to some middle-range value (ugly)
}