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