Цель: Я хочу иметь функцию пользовательского поиска (геокодирования) и иметь возможность перечислять и нажимать каждый результат и отображать его на карте.Google Maps API v3 - выпуск результатов геокодирования с ограничениями
Требуется: Настройка карты границ/уровня масштабирования, т.е. поиска для «MA, США» должен увеличить карту, чтобы позволить мне увидеть весь штат Массачусетс, в поисках «Бостон, штат Массачусетс, США» следует увеличить на в районе Бостона. При перечислении нескольких результатов то же самое следует применять при нажатии на результат.
выпуск: Я могу использовать объект geometry.bounds с fitBounds - но - некоторые результаты, которые вы получаете с помощью геокодера, не имеют этого объекта geometry.bounds.
Быстрый пример: поиск "Бостоном" возвращает
Boston, MA, USA
Бостон, Индиана, США
Бостон, штат Кентукки, США
Boston, GA 31626, США
Бостон, Salem , VA 22713, USA
Boston, NY 14025, USA
Оба «Бостон, Кентукки» и «Бостон Нью-Йорк 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)
}
Вы пытались использовать объект 'viewport'. – andresf
Какие значения следует искать в объекте viewport? Кажется, в нем нет никаких границ. Благодарю. – MrUpsidown