Цель: Я хочу иметь функцию пользовательского поиска (геокод) и иметь возможность перечислить и щелкнуть каждый результат и отображать его на карте.
Wanted: Настраивать границы карты / уровень масштабирования соответственно, т.е. при поиске "MA, USA" карта должна увеличиваться, чтобы я мог видеть весь штат Массачусетс, а при поиске "Boston, MA, USA" - район Бостона. При отображении нескольких результатов при нажатии на результат должно применяться то же самое.
Проблема: Я могу использовать объект geometry.bounds с fitBounds - но некоторые результаты, полученные с помощью геокодера, не имеют этого объекта geometry.bounds.
Быстрый пример: поиск "Boston" выдает
Boston, MA, USA
Бостон, штат Индиана, США
Бостон, KY, США
Бостон, GA 31626, США
Бостон, Салем, VA 22713, США
Бостон, Нью-Йорк 14025, США
И "Бостон, KY" и "Бостон NY 14025" не имеют границ.
Question: Есть ли надежный способ отобразить любой результат геокодера на карте при соответствующем масштабе?
Сейчас я использую нечто подобное, но я нахожу это уродливым и это не решает проблему масштабирования
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)
}