【转】ArcGIS JavaScript API 2.0初探
昨晚对比了一下ArcGIS Javascript. API 2.0和以前版本的JSAPI,发现无论从功能和性能上都改变了不少。主要体现在以下几个方面(当然还有其他的细节改动,这里只列出其中几点)。
1)ArcGIS Javascript. API 2.0支持在线编辑功能。当然了,这并不是说这次的API更新加入了在线编辑的功能,而是随着ArcGIS Server 10的发布,在服务端新增了FeatureService这种服务。在服务发布的时候勾选上Feature Access选项,才能通过ArcGIS Javascript. API 2.0脚本在线编辑。值得注意的是,只有数据源注册为版本才能发布为FeatureService,也就是说文件型数据、personal geodatabase、file geodatabase都不支持这类型服务。
2)加入FeatureLayer功能。在以往的JavaScript. API中支持动态服务和缓存服务,这两种服务都是以层的方式加载到地图中去的,除了这两种层之外,还有graphicsLayer(1.4版本以后可以以new的方式创建多个graphicsLayer),可用于客户端的图形绘制。FeatureLayer更类似是graphicsLayer的扩展,可以对Feature Service进行直接查找并把结果在客户端绘制。以往我们要对服务中某个图层进行查找,一般都是使用QueryTask的方式,通过返回图形,再在客户端绘制。而FeatureLayer更直接些,可以通过输入条件参数,直接把结果在客户端绘制。更重要的是,FeatureLayer与在线编直接的客户端对地理数据进行直接的编辑。例子链接http://help.arcgis.com/en/webapi/javascript/arcgis/demos/ed/ed_selectionmode.html
3)支持时态功能。ArcGIS 10 新加入时态功能在ArcGIS Javascript. API 2.0脚本中依然得到体验,可以通过简单的代码编写式来实现时态数据的显示。以往的api也能实现这类型的功能,通过在客户端设置计时器,在时间间隔内到服务器查找数据并把记过绘制在客户端。2.0脚本直接实现了这功能。实例参看http://help.arcgis.com/en/webapi/javascript/arcgis/demos/time/time_sliderwithdynamiclayer.html
4)支持其他的js框架,如ext、jQuery。在之前的文章已经讲述过如何在ext框架下利用arcgis Javascript搭建地图系统,可参考 http://www.gisall.com/?uid-122747-action-viewspace-itemid-3185 链接 。在2.0以前的版本,esri没有明确说明可以配合其他js框架一起使用,但熟悉js开发的程员都知道,把arcgis js API嵌入到其他框架中是一件很简单的事情。而这一次,在esri的帮助网站中,直接给出了ext和jQuery的例子。在例子中我们可以发现,连缩放比例尺的样式都可以使用这些流行的框架的样式,可见esri在js api 方面的决心。例子http://help.arcgis.com/en/webapi/javascript/arcgis/demos/framework/framework_extjs.html 。虽然只是简单的实例,但可以肯定的是,随着api的更新,esri 开发框架会有更好的支持。
5)更好的支持字符编码。相信使用过2.0以前的版本的开发者会有这样的体会,某些数据要从数据库读出,而数据库的字符编码诸如GBK、GB2312等,需要在客户端强制指定字符编码。在引用了arcgis js api以后,如果网页的charset设为非utf-8的编码,就会出现一个经典的错误,”dojo未定义“。这主要是由于dojo库里面charset使用的编码是utf-8的缘故。这样,开发者如果使用utf-8编码,就会使得从其他数据源获取的数据出现乱码(当然,地图数据不会)。要解决这类的问题,通常做法是在获取了数据库数据以后进行字符编码的转换。每次获取的数据都要编码转换当然是个烦心的事情,但这又是必须的工作。在2.0脚本中,经过笔者测试,在网页中指定其他非utf-8编码,不会再报”dojo未定义“这个错误,也就是说可以直接在网页中指定总体的编码而不用担心数据库字符编码与网页编码不一致的问题,从而彻底的释放编码转换的工作。
6)客户端绘制graphic的性能有所提高。经过测试,在客户端绘制图形的性能比以前有所提升。一开始笔者以为这只是错觉,通过引用不同版本的脚本,同一段代码绘制200个图形,2.0脚本的绘制速度的确要比1.5的高。通过查看ArcGIS Server的一些配置,笔者也发现一个有趣的地方,以前基于性能的考虑,esri把查找的最大记录数默认设置为500。在arcgis10版本中,这个最大记录数已经设置为1000了,这也更好的说明,esri已经在客户端显示这一块性能有一定的提升,不然也不会轻易修改这个默认值。
博客地址: http://www.cnblogs.com/dwf07223,本文以学习、研究和分享为主,欢迎转载,转载请务必保留此出处。若本博文中有不妥或者错误处请不吝赐教。 |