[ ArcGIS 10 API for Javascript 系列 ] - 常见问题

1、当浏览器Window窗口发生resize变化,Map该如何处理

      当浏览器window对象resize时,ArcGIS JavaScript. API 是不会自动调整的。当包含map对象的父HTML元素resize,必须人工的调用Map.resize()以适应尺寸的变化。同样的,如果这个父HTML元素的位置发生变化,则需要调用Map.reposition().

       IE中,对于window对象的像素尺寸变化,以开似乎就会触发resize事件,即window.onresize。这样的话就会大大降低应用程序的性能,特别是当map占了整个浏览器window对象长度和高度,或者这个mapHTML元素,每次都会随着IE浏览器尺寸resize而变化的情况。

    我们需要设置一个时间的延迟,以应付上面的情况。代码类似如下:

var resizeTimer;

function init() {

    var map = ...;

    dojo.connect(globals.map, 'onLoad', function (map) {

        //监听window.onresize事件

        dojo.connect(dijit.byId('map'), 'resize', resizeMap);

   });

}

function resizeMap() {

    //清除已经存在的Timer

    clearTimeout(resizeTimer);

    //创建新resize Timer,让它延迟0.5秒触发

    resizeTimer = setTimeout(function () {

         map.resize();

         map.reposition();

    }, 500);

}

 

 

2、在ArcGIS JavaScript. API中结合其他客户端RIA框架,如:JQuery ExtJS

        ArcGIS JavaScript. API是构建在Dojo框架上的。 在你的应用程序中正在使用其他框架,如:JQuery ExtJS,是否可以结合这些框架呢?答案是可以的。

       JavaScript. API是基于Dojo,还是需要引入Dojo精简版的,大小约30k左右,减少了网络传输量。如果你是从Arcgis Online引入Dojo,只需要将srcipt标签的src改为:

  src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.1compact"

      也可以使用本地的compactlibrary。具体这个可以参考离线包的安装说明,安装说明在离线包安装zip中有,

      ArcGIS API for JavaScript.  2.0 离线包libraryURL

  http://help.arcgis.com/EN/webapi/javascript/arcgis/help/jshelp/arcgis_js_v20_api.zip

     ArcGIS API for JavaScript.  2.1 离线包libraryURL

 http://help.arcgis.com/EN/webapi/javascript/arcgis/help/jshelp/arcgis_js_v21_api.zip

 

  具体  JavaScript. API 集合JQuery ExtJS的使用可以参考:

 http://help.arcgis.com/EN/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/framework_jquery.html

 http://help.arcgis.com/EN/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/framework_extjs.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值