在Google地图中平移时无法发布地图

时间:2012-02-23 08:11:57

标签: javascript google-maps

嗨,大家好错了 - 当我尝试通过点击并拖动此页面上的地图来平移时。更新指针的函数被调用,但问题是我无法从鼠标中释放地图 - 就像它粘在它上面一样。

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();
    });
  }
}

其中update是根据地图边界检索指针的函数。

1 个答案:

答案 0 :(得分:0)

我不是一个大的谷歌地图开发者,但你可能会尝试只在Idle事件被触发后进行更新。

您捕获zoom_changed,bounds_changed或tiles_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();
        }
    });
}