0

ArcGIS API for Javascript を使用して、arcgis.com から 3 つのマップを読み込むページがあります。それらはすべて非表示の div にロードされます。

マップをクリックして情報ウィンドウを表示すると、マップを表示した後、情報ウィンドウがずれて表示されます。ただし、Chrome の開発者ツールを開くか、ブラウザーのサイズを変更すると、情報ウィンドウがその場所に表示されます。リサイズイベントがあるようです。

使ってみました

dojo.byId("map").resize()

地図を見せた後ですが、

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

ブラウザのサイズを変更せずにグローバルなサイズ変更イベントをシミュレートするにはどうすればよいですか?

4

1 に答える 1

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);
        });
      });
      ...
    });
于 2013-08-29T12:08:53.190 に答える