Google Maps: обновить наложение изображений - PullRequest
2 голосов
/ 28 марта 2012

Я пытаюсь обновить наложение изображений на карту Google на лету.Я могу создать новый объект наложения, но не могу понять, как его изменить.Могу ли я обновить объект overlayImage

var overlayImage = new google.maps.GroundOverlay("myimage.png", imageBounds);

Я хочу изменить overlayImage при изменении масштаба, но не могу передать его через функцию.Я также не могу найти его в объекте 'map'.

google.maps.event.addListener(map, 'zoom_changed', function(overlayImage) {

}

Как мне обновить myimage.png при изменении уровня масштабирования?

1 Ответ

3 голосов
/ 28 марта 2012

Я думаю, что проблема в том, что overlayImage выходит за рамки, когда вы добавляете прослушиватель событий.

В качестве теста попробуйте объявить переменную глобально, а затем назначить переменную позже.

/* top level */
var overlayImage;
...
/* later on */
overlayImage = new google.maps.GroundOverlay("myimage.png", imageBounds); 

В javascript вы не можете просто передать переменную в функцию и надеяться, что она подберет что-то, что вы объявили ранее.Другая вещь, которая может происходить, заключается в том, что слушатель события передает объект события в качестве первого параметра в функции обратного вызова, но вы назвали его overlayImage, поэтому в этом обратном вызове контекст overlayImage фактически является объектом события.Вы бы сделали что-то вроде:

google.maps.event.addListener(map, 'zoom_changed', function(event) {
    /* overlayImage can now be used */
    overlayImage.someAPIFunction();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...