Google Maps API v3 - проблема результатов геокодера с границами

Цель: Я хочу иметь функцию пользовательского поиска (геокод) и иметь возможность перечислить и щелкнуть каждый результат и отображать его на карте.

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)
}
12
задан MrUpsidown 29 February 2012 в 01:48
поделиться