Не удается разблокировать карту при панорамировании в Картах Google - PullRequest
0 голосов
/ 23 февраля 2012

Привет, ребята, здесь что-то не так - когда я пытаюсь перемещаться, нажимая и перетаскивая карту на этой странице. Вызывается функция обновления указателей, однако проблема в том, что я не могу освободить карту от мыши - она ​​как бы привязана к ней.

http://demo.fltdata.com/airport/antonio-b-won-pat-international-airport/5433

Код для обработки панорамирования:

mapp.prototype.initialise = function(){
  this.map = new google.maps.Map(this.id, this.options);
  xmap = this.map;

  tm = this;
  //this.update();

  if( this.updateUrl != '' ){
    google.maps.event.addListener(xmap, 'zoom_changed', function(event){
      tm.update();
    });

    google.maps.event.addListener(xmap, 'bounds_changed', function(event){
      tm.update();
    });

    google.maps.event.addListenerOnce(xmap, 'tilesloaded', function(){
      tm.update();
    });
  }
}

Где обновление - это функция, которая извлекает указатели на основе границ карт.

1 Ответ

0 голосов
/ 04 июля 2012

Я не большой разработчик карт Google, но вы можете попытаться выполнить обновление только после того, как событие Idle сработало.

Вы фиксируете тот факт, что zoom_changed, bounds_changed или tile_loaded, а затем ждете, пока простое действительно сделает обновление. Ниже приведен код, который я использую для обновления маркеров на странице.

var boundsChanged = false;

function setupBoundsListener(map) {
    google.maps.event.addListener(map, "bounds_changed", function() {
    boundsChanged = true;
    });
}


function setupIdleListener(map) {
    google.maps.event.addListener(map, "idle", function() {
        if ( boundsChanged ) {
            clearMarkers( map );
            populateMarkers( map );
            resetBoundsChanged();
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...