ArcGIS API for JavaScript版本新特性(3.8、3.7、3.3)

0
分享 2015-02-16
ArcGIS API for JavaScript 3.8 下载地址:
http://www.esri.com/apps/products/download/index.cfm?fuseaction=download.all#ArcGIS_API_for_JavaScript

ArcGIS API for JavaScript 3.8发布!以下是新版本中包含的新特性、功能增强以及修复的bug。


更好的支持新的渲染类型

在3.7版本中介绍的新渲染器(点密度渲染dot density和比例渲染proportional)现在可在图例部件中使用,且支持打印。dot density renderer sample中添加了图例, print widget sample中增加了用比例符号渲染的要素图层,想看效果,可以查看这两个演示demo。

新esri/geometry/Circle模块可轻松创建圆
提供中心和半径可轻松创建圆。如果想要测地圆也可以指定。创建的几何图形是多边形,因此,调用toJson返回一个多边形。查看新增的Create circles sample示例可以了解如何使用该模块。

Popup改变

上面左图是3.8版本之前的Popup,右图是新版本中Popup的新式样。现在在所有的位置用的都是小的角,以前当popup固定在靠近屏幕的角落时,它会使用长的角. Popup有两个新属性:visibleWhenEmpty和 hideDelay。当popup所在的位置没有要素时(例如,查询动态地图服务),这些属性会控制popup的行为。在这样的情况下,如果visibleWhenEmpty为true,popup将在数毫秒后在指定的hideDelay过去后隐藏起来。

更好的支持使用文本符号的图元
API中带的图元编辑工具现在支持编辑、缩放和旋转点图元使用的文本符号。editing tools sample 更新包含了一个文本符号点用来演示该新特性。在地图上单击文本来移动、缩放或旋转符号。要编辑文本需要双击。 API中包含的打印组件也进行了更新,以更好的支持对文本符号的打印。
新示例





增强及bug修复

  • 点密度渲染器有时候看起来模糊
  • 提高了卷帘部件的性能,特别是对几个图层进行卷帘时
  • 量算部件:包含海里单位
  • 支持IE11


Dojo JS API 3.8使用Dojo1.9.1及dgrid0.3.11、put-selector0.3.5和xstyle0.1.3。



ArcGIS API for JavaScript 3.7
下载地址:
http://www.esri.com/apps/products/download/index.cfm?fuseaction=download.all#ArcGIS_API_for_JavaScript


ArcGIS API for JavaScript 3.7发布!以下是新版本中包含的新特性、功能增强以及修复的bug。

1、新的渲染方式带来更炫的矢量地图 通过全新增强的渲染器为要素图层轻松创建强大的可视化展示。了解更多信息请见
BetterVector Mapping帮助主题。


  • 旋转:点要素图层通过属性控制符号旋转。
  • 符号缩放:基于属性数据按比例缩放符号大小。符号大小可依据真实世界的距离、或者依据真实的比例数据,或者按比例映射一系列大小的离散的符号( proportionally mapped to a discrete range of symbol sizes)。
  • 点密度渲染器:轻松创建点密度可视化展示。点密度渲染器可用于离散地理现象的空间密度变化的可视化。点密度渲染器在本版本为beta功能,API未来版本中会有变化。
  • 基于比例尺的渲染器:依据给定要素图层的地图比例尺或缩放级别定义一系列渲染器。



2、全新地图部件以简化常见任务 四个全新地图部件以简化应用中添加的常用功能。四个部件分别为:

  • 底图切换:ArcGIS.com底图或自定义底图的切换。
  • 主页按钮:在地图缩放空间下新增的简单按钮,点击返回地图初始视图。
  • 定位按钮:使用浏览器的地理定位能力,缩放到用户所在的地理位置。
  • 卷帘:新增可拖拽的空间,快速对比不同的地图图层。



3、分析部件 分析部件提供对ArcGIS Spatial Analysis服务的访问,通过JS API可对托管数据执行常见空间分析。上面的截图显示了部分Summarize Nearby部件。请连接
Working with Analysis Widgets 主题获取更多信息。


4、地图控件增强 地图控件还提供了一些小的增强以提高用户体验。

  • 当地图放大到最高级之后,地图放大“+”按钮会变灰提示无法再进行放大。
  • 当地图缩小到最低级别之后,地图缩小“-”按钮会变灰提示无法再进行缩小。
  • 当缩放滚动条水平放置时,“-”在左侧出现。
  • “+”和“-”具有悬停状态,代表他们是点击触动的。
  • 属性部件现在有半透明背景,更方便查看属性信息。
  • 新的地图选项:optimizePanAnimation。当为true时,地图视图会移动当前范围宽度两倍以上(例如,使用centerAt或setExtent),地图会快速跳至该位置。这样减少了请求切片服务的次数,因为这样仅会加载地图新视图下的切片,而不是请求前一视图和新视图下的所有切片。

5、基于SVG符号要素新增data-*属性 GraphicsLayer和FeatureLayer新增两个新的构造函数:styling和dataAttributes以及名为surfaceType的新属性。
该增强的主要目的是为了可以使用CSS轻松符号化基于SVG的矢量要素。请链接
Styling features with CSS查看更多信息。通过CSS符号化的图层不支持打印功能。

6、客户端标注 Beta功能:全新 esri/layers/LabelLayer模块用于客户端标注。该功能目前为实验功能,在未来版本中可能有变化。请链接
client-side labeling tutorial获取更多信息,了解如何使用LabelLayer类。

7、现在所有图层具有refreshInterval 属性。 该属性可用于特定时间间隔刷新地图图层。这对于会定期更新的数据图层非常有用(雷达影像或移动车辆)。


8、Geocoder和Directions部件变化 若Geocoder部件使用ArcGIS Online地理编码服务(默认),我们推荐在创建部件时设置autoComplete为true,这是因为底层服务目前已进行增强,支持部分查询。另外,在这个版本中,Directions部件的 addStop, addStops, updateStop 和 updateStops方法在设置第一个参数为点时不能使用,设置为一个字符串这些方法仍然可以使用。这个问题将在3.8版本中进行改进。

9、Stream Layer变化 全新update事件,用于访问更新后的图形。

10、全新实例




11、增强及bug修复
  • NIM094798: 在地图属性部件中显示ArcGIS.com世界影像(卫星影像底图)的属性。
  • NIM094800: 使用SVG路径的SimpleMarkerSymbols 不能使用setSize() 或setAngle().
  • NIM094801: esri/config.defaults.io 添加useCors属性以指定发送请求时是否使用CORS.
  • NIM094802: esri/request支持 protocol-relative URLs .
  • NIM094803: IE8不响应 “basemap-change” 事件.
  • NIM094804: 使用坐标数组(而非完整的JSON对象)创建 esri/geometry/Polygon实例.
  • NIM094805: 使用坐标数组(而非完整的JSON对象)创建esri/geometry/Polyline实例.
  • NIM094806: esri/dijit/BasemapGallery 部件支持web tiled layers.
  • NIM094973: 加载底图后esri/arcgis/utils.createMap显示地图而不是在显示地图前加载底图和所有可操作图层.
  • NIM095054: 支持canvas的浏览器支持对SVG点符号使用Print task和print widget.

12、Dojo ArcGIS API for JavaScript 3.7使用Dojo1.9.1,以及dgrid 0.3.4、put-selector 0.3.1和xstyle 0.0.5


ArcGIS API for JavaScript 3.3
arcgis_js_v33_API.zip下载地址:http://vdisk.weibo.com/s/nx2AM/1358216078
arcgis_js_v33_sdk.zip下载地址:http://vdisk.weibo.com/s/nwUDp/1358216099

ESRI 发布了最新了3.3版的ArcGIS API for JavaScript,并且更新了帮助的界面。
图 1.1 ArcGIS API for JavaScript 3.3版帮助界面

图1.2 ArcGIS API for JavaScript 3.2版帮助界面
1、新的地理编码控件 使用ArcGIS API for JavaScript 3.3版仅需要几句简单的代码就可以给自己的应用程序添加地理查询框控件。虽然该控件默认采用的是ArcGIS Online的世界地理编码服务(World Geocoding Service),但是也可以自定义采用一至多个ArcGIS Server中的地理编码服务。

图 2.1 新的地理编码查询控件
点击samples that use thisnew widget 查看

2、新的地图构造函数选项 在ArcGIS API for JavaScript 3.3版中map类的新的构造函数选项能帮助用户使用简洁的代码快速的构建地图应用。
• basemap:ArcGIS.com 的地理底图。可能的值有:"streets", "satellite", "hybrid", "topo", "gray", "oceans", "national-geographic" 或者"osm"。
• center: 以经度和纬度组成的坐标数组或者一个点。
• zoom:地图的缩放级别。
• minZoom: 地图的最小缩小级别。
• maxZoom: 地图的最大放大级别。
在新的接口中,地图采用自动缩放,因此不再需要在地图容器端设立事件监听,监听地图容器大小变化来改变地图范围。
下图是在3.3 版本和3.3 以前的版本中,加载地图的代码对比图。


图 2.2 新版和之前版本加载地图的对比图


3、更简单的底图切换 在新版API中,新增加了两个地图方法,getBasemap 和setBasemap,使得底图的切换更加的方便。setBasemap 接收上文提到的basemap的名字字符串,并转换其在ArcGIS.com 中相对应的底图。如果在应用程序中使用map.options.basemap或者setBasemap方法来初始化底图,则采用getBasemap方法能返回当前的地理底图的名字的字符串。


4、默认的地图微缩放控制 在新的API中地图的微缩放控制通过“+”和“-”来取代滑块成为地图的微缩放默认的控制方式,而通过将地图的构造函数中选项中的sliderStyle属性设置为“large”依然可以使用滑块形式。


5、地图的图层中可以只包含一个图形层或者要素层 在3.3版中,map不再必须要求先添加切片或者动态服务后才能添加其他图层,可以直接添加图形或者要素图层。查看
Feature Layer in anyprojection sample 或者
gas prices by stateexample 来查看新的该特性。


6、提升了经纬度坐标的操作 esri.geometry 对象在创建的过程中如果没有赋予空间参考,被假定采用的是地理坐标系并且被默认为采用WGS 84 (wkid 4326)。在新版的API 中esri.geometry.Point 的实例新增加了getLatitude 和getLongitude的方法,如果点具有地理坐标或者网络墨卡托坐标,则通过这两个方法可以获取点的经度和纬度,反之,则这两方法返回undefined。如果当map具有地理坐标系或者网络墨卡托坐标,则使用geographicExtent属性获取地理范围。


7、绘图工具的加强 绘图工具条中的矩形,三角形,圆和椭圆工具支持鼠标的单击和拖拽来控制图形的范围。在新版API中工具条也能绘制上、下、左、右等特定方法的箭头。这些新的功能可以在
drawing tools sample中可以查看。


8、附加功能 •要素图层中的新redraw方法可以在无须返回到服务的情况下可以重绘要素。
• 通过传递函数来取代使用一类别的属性字段名渲染或者唯一值渲染来计算需要渲染的数据值。可以 查看
USCounty population change over time sample
• 类别渲染中的setMaxInclusive方法用来指明符合某一symbol类的最大值的要素是否应该包含在类中。
• 编辑工具条新添加了uniformScaling这一选项,该选项在图形大小变化的过程中保持了图形的纵横比不变。


9、新增加了实例

· Createa map using new simple options
· GeocoderWidget
· GeocoderWidget with custom options
· GeocoderWidget with custom style
· GeocoderWidget using a suffix to restrict search area
· Locatepoints of interest(POIs)
· Featurelayer in any projection
· Featurelayer with no basemap
· Dailygas prices by state mashed up with a feature layer
Rendererusing a function to determine feature symbols

10、突破性变化 •创建geometry无须指定具体的空间参考,当没有具体的空间参考时,API默认采用WGS84 (wkid 4326)。在应用程序中创建过去的那种非WGS84 坐标的几何图形时,如果没有空间参考则现在必须为几何图形指定具体的空间参考。
• map的默认的缩放滑块样式在发生了变化。创建地图时,带有刻度的滑块不再是默认的样式,但是可以通过将sliderStyle的属性设置为"large" 来恢复到先前的样式。
• 当dijits layout 和data-dojo-config(或dojoConfig)的locale或者extraLocale路径没设置的时,使用了lang=“en”的应用程序会遭到破坏。为了避免此类错误,推荐设置data-dojo-config中的locale或者extraLocale路径或者移除lang=“en”属性,否则在Chrome浏览器中会出现 “dojo/parser::parse() error TypeError”的错误,在Firefox中则会出现错误“TypeError:_72f(...) is undefined”。查询更多的错误信息可以浏览网站
http://trac.dojotoolkit.org/ticket/15630#comment:7
http://trac.dojotoolkit.org/ticket/15768#comment:6


11、增强功能和Bug的修复 •NIM087469:ArcGISDynamicMapServiceLayer.setDynamicLayerInfos()不能正确的从JSON创建esri.layers.DynamicLayerInfo对象。
• NIM087472:在同一页面上无法创建多时相的滑块。
• NIM087503:仪表控件到AMD的转换。
• NIM087504 :图例控件到AMD的转换。
• NIM087499 Editor:当指定自定义的属性时,空的检查对话框会在选择要素的时候弹出。
• NIM087510:当使用压缩构建的API时esri.layers.WebTiledLayer无效。这是因该类没有显示的声明dojo.stirng,而采用dojo.string的替代。
• NIM088028:esri.request 允许上传文件使用FormData形式,而浏览器能对FormData的支持。
• NIM087511:将esri._isDefined方法修改为public方法esri.isDefined。
• NIM087500:在3.2 的FeatureLayer 中划线不显示。
• NIM087507 IdentityManager:修复了令牌生成的参考。
• NIM087512 IdentityManager:通过geowarehouse server 的返回传递error.messageCode的属性。
• NIM088031 :从map中移除某一图层后,再将该图层添加到map中时,图层不可视。
• NIM088024 Legend widget:不添加margin为1的地图比例。
• NIM087513 Popup:提供对shortDateLongTime和shortDateLongTime24两种时间格式的支持。
• NIM088027 Popup:如果某一要素所在的图层不具有SHAPE字段,则该要素无法显示。
• NIM088032 Popup:移除了图片和图表的边框和背景颜色。
• NIM087501 Portal:添加getPortalUser方法,该方法返回当前登录PortalUser的对象。
• NIM087505 Portal:当调用Portal.signOut方法时出现null 异常。
• NIM088021 Printing: 给esri.tasks.printTemplate添加新属性作为“:”“showAttribution”为输出开关控制。
• NIM088026 Printing:当要素集中的要素不具有几何形体,则打印任务中应该不包括这些要素。
• NIM088030 Printing:打印任务应该排除那些通过JavaScript API KMLLayer.js转换过来的图层,因为打印服务不知KML文件夹。相反应该发送graphic slayers或者mapImageLayers作为工作区。
• NIM088035 Printing:PrintTask 应该排除非法的图片,这些图片来自MapImageLayer包含非法的URL或者ImageData属性。
• NIM088029 Printing: esri.tasks.printTemplate.layeroutOptions支持customTextElements属性。
• NIM085927 Printing:当执行打印时,基于要素图层创建的要素集应该在图例中显示图层名或者图层ID。
• NIM088023:当链接到一个交叉的时间或者超过原先的范围的时候保存正常的范围。
• NIM088034 :支持 directionsOutputType 和 directionsStyleName 参数 到 RouteParameters 和 ClosestFacilityParameters。
• NIM088033:esri.esri.tasks.ClosestFacilityParameters.directionsTimeAttribute的默认值应该为“null”而不是“false”。
• NIM088025:当在FireFox和IE中创建TimeExent对象,指定起始时间和终止时间时会丢失毫秒的精度。
• NIM083409 :当编辑的属性为0, applyEdits 发送空的字符串。.
• NIM088022:map空间在IE7中预览时显示esri的logo。

Dojo 1.8 ArcGIS API for JavaScript 3.3版采用了Dojo 1.8。
文章来源:http://blog.csdn.net/arcgis_all/article/details/8504017

0 个评论

要回复文章请先登录注册