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