Подтвердить что ты не робот

При использовании kml файла масштабирование карты Google переопределяется

Как указать уровень масштабирования для карт google в файле kml или почему он меняет уровень масштабирования при загрузке этого файла. Мой вопрос в том, как я могу управлять масштабированием карты по следующей ссылке:

http://code.google.com/apis/maps/documentation/javascript/examples/layer-kml-features.html

4b9b3361

Ответ 1

По умолчанию карта центрируется и масштабируется до ограничивающей рамки содержимого слоя kml.

Вы можете изменить поведение по умолчанию с помощью свойства preserveViewport объекта google.maps.KmlLayerOptions. Если вы установите его на true, карта не будет центрирована и увеличена.

В этом примере используйте:

var nyLayer = new google.maps.KmlLayer(
                  'http://www.searcharoo.net/SearchKml/newyork.kml',
                  {
                      suppressInfoWindows: true,
                      map: map,
                      preserveViewport: true
                  });

Если вы хотите снова центрировать и увеличить содержимое слоя kml, используйте:

var bounds = nyLayer.getDefaultViewport();
map.fitBounds(bounds);

EDIT:

Если вы хотите, чтобы карта всегда была центрирована (но не увеличивалась) при загрузке слоя kml, используйте defaultviewport_changed событие объекта google.maps.KmlLayer. Вы должны установить центр карты в центр видимого окна слоя kml. Событие запускается при загрузке содержимого слоя kml и вычисляется его окно просмотра по умолчанию.

google.maps.event.addListener(nyLayer, 'defaultviewport_changed', function() {
   var bounds = nyLayer.getDefaultViewport();
   map.setCenter(bounds.getCenter());
});