По умолчанию карта центрируется и масштабируется до ограничительной рамки содержимого слоя 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());
});