显示隐藏地图后移位的信息窗口

时间:2013-08-29 11:30:14

标签: javascript dojo arcgis esri arcgis-js-api

我有一个页面,我使用ArcGIS API for Javascript从arcgis.com加载三张地图。所有这些都加载在隐藏的div中。

当我点击地图以显示信息窗口时,在我将地图显示后,它显示信息窗口已被移位。但是,如果我打开Chrome的开发者工具或调整浏览器大小,那么infowindow会显示在其位置。似乎有一个resize事件。

我尝试过使用

dojo.byId("map").resize()
显示地图后显示

TypeError: Object #<HTMLDivElement> has no method 'resize'

如何在不调整浏览器大小的情况下模拟全局调整大小事件?

1 个答案:

答案 0 :(得分:1)

嗯,resize()不是一个特定于HTML的DOM方法,这与map对象有关。 尝试调整大小并重新定位地图对象。

试试这个(AMD的样本): -

    require([
      "esri/map", "dojo/_base/connect", "dijit/registry", ... 
    ], function(Map, connect, registry, ... ) {
      var map = new Map( ... );
      var resizeTimer;
      connect.connect(map, 'onLoad', function(theMap) {
        connect.connect(registry.byId('map'), 'resize', function() {
          //resize the map if the div is resized
          clearTimeout(resizeTimer);
          resizeTimer = setTimeout( function() {
            map.resize();
            map.reposition();
          }, 500);
        });
      });
      ...
    });