译:ArcGIS JS API 4.x 历史版本及关键更新

译:ArcGIS JS API 4.x 历史版本及关键更新

4.0 发布时间: 2016-05

这是 4.x 系列 API 的第一个正式版本。由于之前的 4.x 版本处于测试阶段,因此此处不考虑记录它们。

4.1 发布时间: 2016-09

  • WebMap.version 属性重命名为 WebMap.sourceVersion。
  • WebScene.version 属性重命名为 WebScene.sourceVersion。
  • ClosestFacilityParameters.returnPolygonBarriers 属性重命名为 ClosestFacilityParameters.returnPolygonBarriers。
  • FeatureLayer.createQueryParameters 属性重命名为 FeatureLayer.createQuery。
  • Popup 的 dockOptions.position 属性值现在除了接受字符串之外,也接受函数。
  • NavigationToggle 已被添加到 SceneView 的 default.widgets (默认组件) 之中。
  • The Geoprocessor.getResultImageLayer() 方法被 Geoprocessor.getResultMapImageLayer() 替代。对于签名的变更,请查看SDK 文档
  • GroupLayer、Map 和他们的子类中的layer-addlayer-removelayer-reorder事件已被移除,取而代之的是 esri/core/Collection的 change 事件。

4.2 发布时间: 2016-12

  • VectorTileLayer 的ACCESS_TOKEN属性已被移除。
  • 为了提高安全性,浏览器开始在不安全的页面上阻止 Geolocation API,这意味着定位按钮将无法在不安全的网页(即 http 协议的链接)上使用。 谷歌浏览器首先在版本 50(2016 年 4 月)中实现了这个功能。苹果也计划在 Safari 10(2016 年 9 月)中实现了这一点。 Mozilla/Firefox 正计划做同样的事情。 在 4.0 和 3.17 版本中,JSAPI 不再在 Chrome 浏览器中显示非安全 Web 应用程序的定位按钮。 从版本 4.2 和 3.19 开始,JSAPI 不再在浏览器上任何不安全的网页程序中显示定位按钮。 请注意,localhost 被认为是“潜在安全的”,可用于便捷测试。

4.3 发布时间: 2017-03

  • sizeRendererCreator.createVisualVariable()重命名为 sizeRendererCreator.createVisualVariables() ,因为它的返回值类型改成数组了。

4.4 发布时间: 2017-07

  • 从 4.4 版开始,locator.locationToAddress() 方法返回一个正确的 AddressCandidate。 此错误修复会影响五个 AddressCandidate 属性中的两个:addressattributes。 请注意,其他 AddressCandidate 属性(extentlocationscore) 没有变化。

    • 在 4.4 之前,locationToAddress() 错误地返回一个始终具有空 attributes 属性的对象,address字符串是一个对象。 从 4.4 开始,address 属性是一个字符串,attributes 属性将不再为空。
    • 指定一个字段,如:CountryCode,现在的写法是 attributes.CountryCode。 之前的版本中写法为 address.CountryCode
    • 示例 Intro to popups 为了反映此更新已经更改。
  • Esri icon font 样式和代码已更新,部分代码已经被更改或用于新图标字体。
  • ViewAnimation.stop()不再返回 ViewAnimationpromise.
  • Symbol3DLayer的 type 属性值调整了命名风格,为了和剩余的 API 保持一致,现在使用 keaba-casing 命名风格。
  • 三维 WebStyleSymbols 的方向属性更新了。现在符号的前端指向 y 轴方向(北)。将 ObjectSymbol3DLayer 的 heading 属性设置为 0,符号将指向北;设置为 180,则符号指向南。与旧样式相比,signssignals 以及 Street scene方向改变了 180 度,Transportation 改变了 90 度。
  • 从版本 4.x 开始,在图层中传输 token 参数的推荐方法是使用 IdentityManager.registerToken()。 在此之前的 3.x 中,可以通过 1) 图层的 token 属性,或者 2) 将 token 参数追加到图层 URL 的末尾来将 token 参数传递给图层。
  • Search 组件的 sources属性有一个新的 filter 属性,它取代了现在已弃用的searchQueryParamssuggestQueryParamssearchExtent 属性。
  • 如果开发自定义组件,则应更新配置设置以反映 "jsxFactory": "tsx",而不是"reactNamespace":"jsxFactory"。这在 TypeScript 设置指南主题中进行了讨论。
  • 对于传递到 external renderers的光源值,环境光源和漫反射射光源之间的平衡已更改。这可能会导致与使用 external renderers渲染的对象的外观略有不同。新的光源值表示线性颜色空间中的颜色/强度,并针对灰度系数值为 2.1 的伽玛校正渲染进行了优化。
  • 在版本 4.4 中,如果单击的位置未与配置了 popup template 的要素相交,则 view.click 事件将关闭弹出窗口。如果打开了包含自定义内容的弹出窗口,您可能希望禁用此默认行为,或者在 view.click 时使其保持打开状态。为了实现这个,您必须在单击事件对象上调用 stopPropagation()

4.5 发布时间: 2017-09

  • 所有 rendersymbolsymbol layer类的 type属性不再是只读。
  • 更改了许多 renderertype 值,以实现统一的 kebab-casing 命名风格:

    • UniqueValueRenderer.typeuniqueValue改为 unique-value
    • ClassBreaksRenderer.typeclassBreaks 改为 class-breaks
    • PointCloudClassBreaksRenderer.typepointCloudClassBreaksRenderer 改为 point-cloud-class-breaks
    • PointCloudRGBRenderer.typepointCloudRGBRenderer改为 point-cloud-rgb
    • PointCloudStretchRenderer.typepointCloudStretchRenderer 改为 point-cloud-stretch
    • PointCloudUniqueValueRenderer.typepointCloudUniqueValueRenderer改为 point-cloud-unique-value`。
    • SimpleMarkerSymbol.typesimple-marker-symbol 改为 simple-marker
    • SimpleLineSymbol.typesimple-line-symbol 改为 simple-line
    • SimpleFillSymbol.typesimple-fill-symbol 改为 simple-fill
    • PictureMarkerSymbol.typepicture-marker-symbol 改为 picture-marker
    • PictureFillSymbol.typepicture-fill-symbol 改为 picture-fill
    • TextSymbol.typetext-symbol 改为 text
    • PointSymbol3D.typepoint-symbol-3d 改为 point-3d
    • LineSymbol3D.typeline-symbol-3d 改为 line-3d
    • PolygonSymbol3D.typepolygon-symbol-3d 改为 polygon-3d
    • MeshSymbol3D.typemesh-symbol-3d 改为 mesh-3d
    • LabelSymbol3D.typelabel-symbol-3d 改为 label-3d
    • WebStyleSymbol.typeweb-style-symbol 改为 web-style
  • 当在API 4.5 保存场景到 Portal 10.5.1 或者更老的版本时,ElevationLayer 总是可见的。
  • Search sourceszoomScale属性自动使用 scale 属性。在之前的版本中,只能缩放到特定比例尺,如果搜索结果没有相关的 extent 值的话。
  • Search 组件的 search方法返回一个 Promise 对象,当 resolve 时,Promise 返回一个类似于 search-complete事件的 SearchResponse对象。
  • Search 组件及其相应的 ViewModel 的 suggest() 方法都返回一个 Promise,当 resolve 时, Promise 返回类似于 suggest-complete 事件的 SuggestResponse对象。
  • 移除了 SearchViewModelcancelSuggest 方法。
  • 移除了 Graphic 的 getEffectivePopupTemplate 方法。如果 Graphic 的 popupTemplate 未定义,将使用 Graphic 所在图层的 popupTemplate
  • 移除了 ElevationLayer 的 minScale 和 maxScale 属性。

4.6 发布时间: 2017-12

  • attributionTextitemDelimiter 已经从 AttributionViewModel 移动到 Attribution 组件。
  • 局部场景的 altitude 限制不再有效。
  • SceneView.goToMapView.goTo 返回一个 Promise,不再是以前的 ViewAnimation.
  • Search 组件 searching属性已经被 state 替代。
  • Query类的relationParam属性被重命名为 relationParameter。
  • RelationParameters类的 relationParam 属性被重命名为 ralationParamater。
  • VectorTileLayer 的 url 属性值类型为 String。当使用 JSON 对象初始化 VectorTileLayer 时,使用 VectorTileLayer 的 style 的属性。

4.7 发布时间: 2018-04

  • AttributionItem的 layers 属性 改为 layer。
  • 移除了 ClassBreaksRendererclassificationMethod
  • 移除了 LayerListLayerListViewModelcreateActionsFunction 属性,使用 listItemCreatedFunction 替代。
  • 移除了 draw-completegraphic 属性。
  • 移除了 LayerSymbol3DstyleOrigin 属性。
  • 移除了所有类的 then() 方法,当用到 Promise 时,使用 when() 替代。

4.8 发布时间: 2018-07

  • 更正了TemplateOptionsformatlayout,保持和文档一致。
  • 移除了 pointSizeAlgorithmminSize 属性。
  • FeatureLayerView.queryFeatures()CSVLayerView.queryFeatures() 现在返回一个 FeatureSet
  • SketchViewModel.update() 现在接收 graphic,而不是 geometry
  • SketchViewModeldraw-start 被重命名为 create-initdraw-cancel 被重命名为 create-canceldraw-complete 被重命名为 create-completeupdate-start 被重命名为 update-init
  • always() 方法和 otherwise() 方法在 4.7 版本中已经弃用,在4.8 版本中将移除。
  • 移除了 Search 组件和 SearchViewModel 中的 defaultSource 属性,使用 defaultSrouces 代替。
  • 在 3D 模式下,在连续相机移动期间,具有大量数据的 FeatureLayer 图层的更新可能会暂停,直到连续相机移动完成。
  • CSS 类 .esri-widget-button 已重命名为 .esri-widget--button
  • Action 类已被弃用,现在应该使用 ActionButton 或 ActionToggle 代替。
  • 若要访问 Graphic 的 PopupTemplate,请使用 getEffectivePopupTemplate 方法。在版本 4.8 之前,如果未在图形上定义 popupTemplate,它将使用 Graphic 所在图层中的 popupTemplate。
  • 删除了对使用 Bower 将 ArcGIS API for JavaScript 安装到本地工程中的支持。我们建议迁移到 npm 以利用更多 Web 开发工具。

4.9 发布时间: 2018-09

  • Bookmark 类从 esri/widgets/Bookmarks/Bookmark移动到了 esri/webmap/Bookmark
  • FeatureLayer.queryFeatureAttachments() 方法已移除,使用 FeatureLayer.queryAttachments() 代替。
  • RenderersvisualVariables 中不能再使用 Function 替代字段,可以改为使用 valueExpression
  • 移除了 esriConfig 的 request 的属性:corsDetectioncorsDetectionTimeoutcorsEnabledServeresforceProxyuseCors 属性。
  • 移除了 esriRequest 方法中的 requestOption 参数中的 allowImageDataAccess 属性。MapImageLayer、BingMapsLayer、和 OpenStreetMap 参数中 allowImageDataAccess 属性也移除了。
  • 移除了 ClassBreaksRenderer 的 isMaxInclusive 属性。
  • 移除了 Search 组件 和 SearchViewModel 中的 popupOpenOnSelect 属性。
  • 如果需要在跨源请求中包含 Cookie 和 Authorization 等凭据,可以在 esriConfig 的 request 属性中设置新的 trustedServers 属性。在版本 4.9 之前,可以通过将 corsEnabledServers 参数的 withCredentials 属性设置为 true 来处理此问题。
  • CSS 样式类名 .esri-widget__header 更名为 .esri-widget__heading
  • 如果目标没有 z 值,则 SceneView.goTo() 方法将查询目标位置的高程。这意味着即使 animate 参数设置为 false,promise 也不会立即返回。

4.10 发布时间: 2018-12

  • Esri Icon Font 二维 MapView 中的 CalciteWebCoreIcons已被重命名为 calcite-web-icons
  • FeatureLayer.capabilities.querysupportsAttachments属性已被移除。
  • 使用客户端要素创建 FeatureLayer 需要为每个字段设置 type属性。
  • FieldOptions类已经被移除,其内容已经融合进 FieldConfig
  • 为了支持单击地图后手动显示 Popup,已移除event.stopPropagation()方法,新的 autoOpenEnabled 属性默认为 false.
  • IdentityManagerBase的所有文档已经融合到 IdentityManager.

4.11 发布时间: 2019-03

  • FeatureLayer.outFields 的默认行为已更改。它不再自动包含图层标注、渲染、编辑和高程信息所需的字段。如果没有显示设置,它现在默认值为 null。

    • 通常不需要指定 outFields,API 会自动确定要获取的字段。但是,对于在自定义功能中使用的字段,则可能仍需要使用 outFields 属性显式添加这些字段。
    • 若要了解哪些字段在客户端可用,请使用新的 availableFields 属性。它包含为每个要素获取的属性字段列表,这个列表包括图层标注、渲染、高程信息以及使用 FeatureLayer.outFields 属性添加的字段。LayerView 完成更新后,将自动给 availableFields 属性赋值 。
  • Query.units属性的默认值已调整为 null,之前是 meters
  • Sublayer.createFeatureLayer() 现在返回解析为 FeatureLayer 的 promise,而不是 FeatureLayer。
  • Autocasting 不再支持 Mesh 几何体。
  • 改变了esri/geometry/support/MeshMaterial中的透明度解析方式。以前,低于 0.1 的值将被解释为完全透明(即完全看不见),现在此阈值已调整为 0.5。如果需要旧行为,现在可以使用 alphaCutoff 属性显式更改阈值。
  • select方法从FeatureTemplates中移除,并加入 FeatureTemplatesViewModel
  • 移除了 esri/geometry/ScreenPoint类。
  • 移除了 MapNotesLayerLegend支持。
  • 从所有图层类中删除了token属性。在图层上传递token的推荐方法是使用 IdentityManager.registerToken() 或使用 esriConfig.request.interceptors
  • Feature widgetFeatureViewModel中删除了 view 属性。
  • MapImageLayer.getImageUrl()方法现在返回 null。
  • AttachmentQuery类的definitionExpression属性重命名为 where
  • RelationshipQuery类的definitionExpression属性重命名为 where
  • TemplateItemGroup.name重命名为 TemplateItemGroup.label
  • FeatureLayerSearchSource类重命名为 LayerSearchSource

    • 重命名的 LayerSearchSource 类现在采用 Layer 属性,而不是 FeatureLayer
    • Directions.SearchProperties 对象中的 sources 属性现在采用 LayerSearchSource,而不是 FeatureLayerSearchSource
  • 作为添加 3D 绘图支持的一部分,2D 绘图类有所调整,例如:

    • esri/views/2d/draw/Draw已移动到esri/views/draw/Draw
    • esri/views/2d/draw/DrawAction已移动到esri/views/draw/DrawAction
    • esri/views/2d/draw/PointDrawAction已移动到esri/views/draw/PointDrawAction
    • 其他类似调整此处略过不译。
  • 部分与 Popup 相关的已被移动、重命名或移除,例如:

    • esri/support/ContentElement/Media/Chart类已被移除。
    • esri/support/ContentElement/Media/Media类已被移除。
    • esri/support/ExpressionInfo被移动到esri/popup/ExpressionInfo
    • 其他类似调整此处略过不译。
  • 一个图形(Graphic)一次在于一个 GraphicsLayer 中。将图形添加到 GraphicsLayer 时,如果该图形已在另一个 GraphicsLayer 中,则该图形将移动到目标 GraphicsLayer 。
  • 二维高亮功能已经通过三种方式改进:

    • 柔和、抗锯齿的边缘。
    • 降低了默认不透明度,现在与 3D 中使用的默认设置一致。
    • 修改了覆盖率算法,现在突出显示线和面的透明部分。

4.12 发布时间: 2019-07

  • ClassBreaksRenderer.getClassBreakInfo()已由同步函数改为异步函数。
  • UniqueValueRenderer.getUniqueValueInfo()已由同步函数改为异步函数。
  • 作为性能优化的一部分,不再显示不遵循顺时针顺序的错误多边形。多边形环应该是顺时针,逆时针环则被视为孔。
  • locatorTask.locationToAddress() 参数从 (location, distance, requestOptions) 改为现(params, requestOptions)。params 对象有两个属性:locationlocationType
  • SceneLayerView 中的查询方法 queryExtent()queryFeatureCount()queryFeatures()queryObjectIds() 需要返回的字段需要提前使用 SceneLayer.outFields 定义。
  • 更改了 SceneView 中颜色的行为,使其与 MapView 保持一致。如果图形的颜色值设置为 null,则它将显示为透明。
  • 现在为 3D 标签类上的 where 子句提供了完整的 SQL 支持。旧版 where 子句未实现严格的 SQL 语法,可能会中断。
  • 将类 SearchSearchLayerSearchLayerFieldwebscene.applicationProperties 移动到 webdoc.applicationProperties 模块,这是 WebMap 和 WebScene 的通用模块。
  • 移除了 Popup 的 actionsMenuEnabled属性。
  • 移除了 DotDensityRender 中的 dotBlendingEnabledreferenceDotValue 属性。
  • 移除了 Search 组件和 Locator 组件中的distance参数,因为他已经被启用且 World Geocoding Service 不再支持。
  • 移除了 Search 组件的 localSearchOptionslocationToAddressDistance属性,他们在版本 4.11 中已经启用。
  • 从基类 Symbol3DLayer 中删除了material属性。此更新使得 Symbol3DLayer 的子类实现了独立的material属性。
  • ImageServiceIdentifyParameters中移除了 noData属性。
  • TimeInfo类中移除了timeExtent属性,使用 fullTimeExtent属性替代。
  • SizeSliderColorSliderColorSizeSlideresri/widgets/路径移动到esri/widgets/smartMapping/路径。
  • PopupTemplatecontenttitle 不能再使用通配符进行设置,例如 *。相反,请将弹出窗口的defaultPopupTemplateEnabled 属性设置为 true。
  • PopupTemplatecontenttitle属性将不再支持格式化函数 DateStringDateFormatNumberFormat,可以使用 FieldInfoFieldInfoFormat替代格式化函数。
  • ElevationLayer.fetchTile()方法中的 noDataValue参数已经嵌入到 options 参数中。
  • PopupTemplatecontenttitle属性不再支持参数化的函数。
  • PathSymbol3DLayerheightwidth属性都没有设置时,符号将不会渲染出来。之前的版本中如果没有设置size参数,符号将会按照宽和高分别为1米进行渲染。

4.13 发布时间: 2019-10

  • StretchRenderer已经被移除,改为使用 RasterStretchRenderer
  • Geoprocessor类已经被标准化,这需要做一些改变:

    • 移除了 updateDelay属性。
    • 移除了 cancelJobStatusUpdates()方法。
    • 一旦任务成功提交到服务器,submitJob() 方法就会立即返回包含 JobInformation 的 Promise。以前,只有在请求成功后才能返回 Promise。现在,您可以使用 waitForJobCompletion() 方法来获取任务完成通知和任务状态状态。
    • getResultMapImageLayer() 方法现在返回一个 Promise,解析后返回 MapImageLayer。以前是直接返回 MapImageLayer。
    • getResultData()方法从 GPFeatureRecordSetLayer 或 GPRecordSet 请求数据时,当检测到url属性时,它会返回 DataFile。
  • 从 AreaMeasurement2D 和 DistanceMeasurement2D 小部件及其 ViewModel 中删除了 mode 属性。
  • ImageServiceIdentifyParameters 中删除了 pixelSizeXpixelSizeY 属性。请改用 pixelSize 属性。
  • ImageryLayer中移除了 domainFields 属性,改为使用 fields属性。
  • ImageryLayer中移除了hasRasterAttributeTablerasterAttributeTable属性,使用 serviceRasterInfo.attributeTable替代。
  • 从 Sketch 和 SketchViewModel 中删除了 reset 方法。在相应的类上使用 cancel方法替代。
  • 移除了 SliderViewModel类的 value-change 事件。
  • 删除了直方图组件条形图上的默认 tabindex。所有实现直方图的滑块组件(包括直方图范围滑块和所有智能制图滑块)都受此更改的影响。若要按 Tab 键浏览直方图条形图,开发人员应使用 barCreatedFunction 将每个条形图元素的 tabindex 设置为 0。
  • 移除了 StreamLayerfilter属性和updateFilter属性。
  • StreamLayerView中移除了 connectdisconnectgraphicsupdateFilter属性。

4.14 发布时间: 2019-12

  • 当事件在 View上的传播(事件冒泡)停止时,任何派生事件的传播都将停止。例如,当对immediate-click事件调用 stopPropagation() 时,不再触发clickdouble-click事件。当在pointer-up事件上调用 stopPropagation() 时,不再触发immediate-clickclickdouble-click事件。这使得实现事件处理更容易,因为程序通常一次只想处理其中一种事件类型。
  • FeatureLayerView.queryFeatures 和 GeoJSONLayerView.queryFeatures 结果将不再包含 2D MapView 中的 z 值,即使 query.returnZ 设置为 true。
  • Sketch 具有一个名为 creationMode 的新属性,默认值为continuous。即默认情况下,允许连续创建具有相同几何类型的图形。这与以前版本中微件的默认行为不同,在早期版本中,只可以一次创建一个图形。
  • 要在图形更新操作期间使用 Sketch 组件选择或取消选择多个顶点,我们现在使用 Shift + 左键单击组合,而不是在顶点上按 Ctrl + 左键单击。
  • 2D 测量组件将基类从 esri-area-measurement-3d 更改为 esri-area-measurement-2d,以及从 esri-direct-line-measurement-3d 更改为 esri-distance-measurement-2d
  • MapImageLayer 中删除了 getImageUrl()方法。此方法自版本 4.11 起已弃用。我们建议改为扩展 BaseDynamicLayer
  • 从 Slider 和 HistogramRangeSlider 中删除了 value-changevalue-change事件。这些事件自版本 4.13 起已弃用。我们建议监听 values 属性或改用其他组件事件。
  • 删除了印地语作为受支持的区域设置。
  • 与 ArcGIS 工作流管理器(ArcGIS Workflow Manager)相关的类已被移除。从版本 4.13 开始,它们被标记为已弃用。
  • HTML sanitizer 已添加到所有组件中,以根据 ArcGIS Online 支持的 HTML 规范对字符串进行清理和转义。这可能会导致删除在 PopupTemplate.content 或其他组件中设置的 HTML。

4.15 发布时间: 2020-04

  • API 默认从 4.15 开始返回原生 Promise。
  • 不再全局包含 dgrid 样式。如果在 Web 应用程序中使用 dgrid,则需要单独引用样式表。
  • 删除了 ImageMeshColor,该类自 4.11 版起已弃用。改为在 MeshMaterial.colorTexture 上设置 MeshTexture
  • 删除了自版本 4.10 起已弃用的 requireUtils。请改用 promiseUtils.create()。
  • 删除了 ValueMeshColor,该类自版本 4.11 起已弃用。请改用 MeshMaterial.color。
  • StreaLayer中删除了 capabilitiesversion 属性。
  • Sketch 组件和 SketchViewModel 上的更新事件不再具有 cancel 状态。在更新事件上的参数 aborted 表示更新已取消。
  • attachmentInfos属性已从AttachmentsContent中删除。它现在通过Attachments组件进行处理,并且可以通过其 ViewModel 进行访问。
  • Workflow.data 属性现在返回 CreateWorkflow 或 UpdateWorkflow 引用。
  • Editor 组件和 EditorViewModel 的 activeWorkflow 属性现在返回对 CreateWorkflow 或 UpdateWorkflow 的引用。
  • 工作流(Workflow)编辑现在在编辑类中引用。

4.16 发布时间: 2020-07

  • 删除了 Dojo Promise。默认情况下,原生 Promise 已激活。不再支持 has 标志"esri-native-promise"
  • 删除了对 Dojo 声明模块(declare)的使用。这意味着具有利用 API 类框架和多重继承的类的应用将停止工作。推荐的方法是使用 mixins with Accessor。
  • TileImageryLayer 将被移除并替换为 ImageryTileLayer。
  • 现在,如果两个时间范围不相交,则 TimeExtent 的 intersection方法将返回一个 TimeRange 实例,该实例的startend属性的值为 undefined
  • 当 View 的 container 元素的 css 样式可见性设置为隐藏(visibility:hidden)时,视图的suspended 属性将设置为 false。视图处于隐藏状态,但它仍然在渲染和更新数据。
  • CIMSymbol 的数据属性现在仅支持 CIMSymbolReference JSON。CIMSymbol JSON 应该在 cimSymbol.data.symbol 上应用。

4.17 发布时间: 2020-10

  • 为了更好地管理内存,view.destroy() 将销毁所有附加的资源,包括 map。为了防止 map 被销毁,可以在调用 view.destroy() 之前为 map 赋新值。
  // 将销毁 view 以及所有附加的资源
  view.destroy();
  // 为 map 赋新值以防止被销毁
  const map = view.map;
  view.map = null;
  view.destroy();
  • ActionButton 和 ActionToggle 类现在可以正确地将其类型实现为 buttontoggle。在此之前,它被设置为 string
  • Feature 组件以及其相关的 ViewModel 中的 goToMedia() 方法已重命名为 setActiveMedia
  • WebMap 的tables属性现在采用图层集合,而不是对象数组。
  • TimeSlider.loop 属性现在的默认值为 false,而不是 true
  • 所有图层和表的服务元数据现在都从 FeatureServer/layers/REST 端点集中获取,而不是每个图层从其专用端点(例如 FeatureServer/)获取其元数据。
  • StreamLayer.maximumTrackPoints 在 4.15 版中已弃用,现已删除。请改用 StreamLayer.purgeOptions.maxObservations
  • 使用 applyEdits 将具有 z 值的图形添加到具有 hasZ:false 的要素图层中,不再以静默方式删除 z 值,现在会引发错误。
  • 对 Popup 进行了性能改进。在此版本之前,无需在 FeatureLayer 或 PopupTemplate 上指定 outFields 即可访问弹出窗口的要素的 geometry。始终建议设置 outFields,但不是必须的。今后,如果需要访问基础要素的 geometry,则必须设置 outFields。如果使用包含弹出窗口的 WebMaps,这同样适用。如果弹出窗口没有用于 geometry 的 Arcade 表达式,则现在需要访问 WebMap 的图层或其 PopupTemplate 并设置 outFields。

    4.18 发布时间: 2020-12

  • 不支持 IE11/Edge 旧版。对 Internet Explorer 11 和 Edge 旧版的支持在版本 4.16 中已弃用,并在版本 4.18 中结束。
  • MapView 和 SceneView 上 takeScreenshot() 方法的默认格式已更改为 png,之前是 jpg。
  • mediaType 属性已从 OGCFeatureLayer 中删除。所有对元数据和数据内容的请求都将使用 f=json url 参数进行。
  • FeatureForm.getValues() 现在将始终返回具有更新属性的对象。在此之前,如果没有提供要素,它将返回 null。
  • 如果编辑要素上没有现有属性,则 FeatureForm.getValues() 将返回 undefined。这是为了与有效的null区分开来。
  • FeatureTable组件不再使用图层的最大记录计数来确定分页大小。它会自动默认为 50 条记录,除非图层包含的记录少于此值。如果是这样,它将采用此计数并为其设置分页。
  • 更新了intl.onLocalChange() 的回调以返回 LocaleChangeCallback 而不是函数。
  • Sketch 组件 defaultCreateOptions 的默认模式已更改为 click而不是hybrid
  • RouteParameters.barriers 属性已被删除。它已从版本 4.11 开始弃用。请改用pointBarrierspolygonBarrierspolylineBarriers

    4.19 发布时间: 2021-05

  • IdentityManager 的 setRedirectionHandler 方法和 useSignInPage 属性在 4.19 中删除。这是由于Enterprise Portal 应用从即将发布的 10.9.1 版本开始不再使用此功能。
  • InputField 和 FieldElemenet 提示属性已更新为显示 TextAreaInput 和 TextBoxInput 的文本和数字输入的placeholder 。在此之前,将鼠标悬停在输入字段上时,在 FieldElement 提示中设置的任何内容都将显示为工具提示。
  • 为了禁用 Popup 中的任何默认 action,现在需要将 includeDefaultActions 设置为 false。在 4.19 版之前,这不是必需的。删除默认 action(例如"缩放到"按钮)所需的只是直接设置 Popup 的 actions。这个设置将使“缩放到”按钮不显示。
  • FieldElement 输入类型 InputTextInput已被删除,以便仅公开其子类类型。这些子类类型包括 TextAreaInputTextBoxInput DateTimePickerInput。除了这三种类型外,4.19 中还包括一些新的输入类型。其中包括BarcodeScannerInputRadioButtonsInputComboBoxInputInputTextInput未删除任何属性或功能。这两个类的属性现在可以直接从其子类访问。
  • esri/layers/support/AttachmentInfo 已移至 esri/rest/query/support/AttachmentInfo。虽然较旧的类仍然可以使用 JavaScript,但需要更新新类的引用路径,以便使用 TypeScript 获得正确的类型。
  • @renderable 装饰器已在 esri 组件帮助程序类(esri widgets helper class)中弃用并移除。开发人员不需要做什么,因为小组件仍应按预期工作。
  • 如果扩展实现 Accessor 的类,则在定义 Accessor 属性时不再需要将 dependsOn@property修饰器一起使用。
  • 自定义重新居中组件示例已从 SDK 示例移至 GitHub 仓库 jsapi-resources GitHub
  • 从以下 task 类中删除了 requestOptions 属性(requestOptions 仍可用作可选方法参数):ClosestFacilityTaskFindTaskGeometryServiceIdentifyTaskImageIdentifyTaskImageServiceIdentifyTaskPrintTaskRouteTaskServiceAreaTask
  • 以下类、方法、属性和事件已在至少 2 个版本中弃用,现已从 API 中删除:

    类/属性/方法/事件 备用选项 弃用版本
    ProjectParameters.outSR ProjectParameters.outSpatialReference 4.4
    BasemapToggle.titleVisible BasemapToggle.visibleElements.title 4.15
    reaMeasurement2DViewModel.clearMeasurement() AreaMeasurement2DViewModel.clear() 4.16
    AreaMeasurement2DViewModel.newMeasurement() AreaMeasurement2DViewModel.start() 4.16
    AreaMeasurement3DViewModel.clearMeasurement() AreaMeasurement3DViewModel.clear() 4.16
    AreaMeasurement3DViewModel.newMeasurement() AreaMeasurement3DViewModel.start() 4.16
    DistanceMeasurement2DViewModel.clearMeasurement() DistanceMeasurement2DViewModel.clear() 4.16
    DistanceMeasurement2DViewModel.newMeasurement() DistanceMeasurement2DViewModel.start() 4.16
    DirectLineMeasurement3DViewModel.clearMeasurement() DirectLineMeasurement3DViewModel.clear() 4.16
    DirectLineMeasurement3DViewModel.newMeasurement() DirectLineMeasurement3DViewModel.start() 4.16
    PrintTemplate.preserveScale PrintTemplate.scalePreserved 4.16
    SliceViewModel.clearSlice SliceViewModel.clear() 4.16
    SliceViewModel.newSlice SliceViewModel.start() 4.16

4.20 发布时间: 2021-07

  • CodedValueDomain.codedValues 现在返回 CodedValue 类型定义对象的数组。在此之前,它使用了一个泛型对象数组。CodeValue中的属性未更改。
  • RotateEventInfo.angle 值的单位为 degree
  • 在 Sketch 和 SketchViewModel 中,用于创建具有预定义形状的 Polygon(Rectangle 或 Circle)的键盘快捷键已从 Ctrl 更改为 Shift
  • 在 Sketch 和 SketchViewModel 中,用于结束 Polyline、Polygon 或 Point 绘制的操作的键盘快捷键已从 C 更改为 Enter
  • 以下类、方法、属性和事件已在至少 2 个版本中弃用,现已从 API 中删除:

    类/属性/方法/事件 备用选项 弃用版本
    Bookmarks.select-bookmark Bookmarks.bookmark-select 4.17
    BookmarksViewModel.BookmarkOptions.captureExtent BookmarksViewModel.BookmarkOptions.captureViewpoint 4.17
    FeatureTemplates.filterEnabled FeatureTemplates.visibleElements.filter 4.15
    Popup.featureNavigationEnabled Popup.visibleElements.featureNavigation 4.15

4.21 发布时间: 2021-09

  • 不再支持在 FeatureForm 组件上设置 FiledConfig。可以通过 FieldElementGroupElement配置字段。通常需要在表单或要素图层的表单模板上设置这些表单元素。
  • ShadowAccumulation 组件已重命名为 ShadowCast
  • ShadowAccumulationViewModel 组件已重命名为 ShadowCastViewModel
  • FeatureForm组件更改了处理值输入的方式。在 4.21 版之前,字段值是使用 onBlur处理和应用的。现在已更新为使用 onInput在用户输入时验证值。仅当日期值有效时,该值才会应用于onInput。随后将根据最终值在 onBlur 上提交或丢弃它。
  • 以下类、方法、属性和事件已在至少 2 个版本中弃用,现已从 API 中删除:

    类/属性/方法/事件 备用选项 弃用版本
    BasemapLayerList.statusIndicatorsVisible BasemapLayerList.visibleElements.statusIndicators 4.15
    Bookmarks.bookmarkCreationOptions Bookmarks.defaultCreateOptions 4.18
    esri/tasks/ImageServiceIdentifyTask imageService.identify 4.18
    esri/tasks/support/ImageServiceIdentifyResult ImageIdentifyResult 4.18
    esri/tasks/support/ImageServiceIdentifyParameters ImageIdentifyParameters 4.18
    FeatureForm.description FeatureFormViewModel.description FormTemplate.description 可以在FeatureForm类 或者 FeatureLayer 类的formTemplate属性设置 4.18
    FeatureForm.fieldConfigFeatureFormViewModel.fieldConfig FieldElement/GroupElement 可以在 FormTemplate.elements设置 4.16
    FeatureForm.titleFeatureFormViewModel.title FormTemplate.title 可以在FeatureForm 类或者 FeatureLayer 类的 formTemplate属性设置 4.18

4.22 发布时间: 2021-12

  • Popup 中的附件元素不再将list作为默认显示类型,默认为自动。
  • 最初在 4.20 中作为测试版发布的分析图层 DirectLineMeasurementLayerAreaMeasurementLayer 已被删除。
  • 删除了作为 TextSymbol.horizontalAlignment 的可用值的justify
  • esri/smartMapping/renderers 文件夹中所有 smartMapping 方法中的 basemap 参数在版本 4.13 中已弃用,现在已换为view参数。
  • 更新了CoordinateConversion组件,删除了由于使用过时浏览器而未加载coordinateFormatter的几何服务。requestDelay 属性已从 CoordinateConversion 组件和 CoordinateConversionViewModel 中删除。
  • 更新了workers的请求流,以便 after 拦截器接收预期的数据类型。CSVLayer 现在将收到预期的数据类型 jsontext
  • 以下类、方法、属性和事件已在至少 2 个版本中弃用,现已从 API 中删除:

    类/属性/方法/事件 备用选项 弃用版本
    ChartMediaInfoValueSeries.x ChartMediaInfoValueSeries.value 4.17
    ChartMediaInfoValueSeries.y ChartMediaInfoValueSeries.tooltip 4.17
    decorators.declared() declared不再需要继承Accessor。 4.16
    esri/layers/support/AttachmentInfo esri/rest/query/support/AttachmentInfo 4.19
    FieldConfig.editorType TextAreaInputTextBoxInput 4.16
    univariateColorSize.createContinuousRenderer()中的params.colorOptions.theme params.theme 4.18
    univariateColorSize.createContinuousRenderer()中的params.colorOptions.legendOptions params.legendOptions 4.18
    univariateColorSize.createContinuousRenderer()中的params.sizeOptions.legendOptions params.legendOptions 4.18
    projection.isSupported 不再需要 4.18
    Slider.labelsVisible Slider.visibleElements.labels 4.15
    Slider.rangeLabelsVisible Slider.visibleElements.rangeLabels 4.15
    SizeVariable.expression SizeVariable.valueExpression 4.2
    symbolPreview symbolUtils 4.11
    widget.@renderable 不再需要 4.19

4.23 发布时间: 2022-04

  • AnimatedFlowRenderer在 4.22 版本中以 beta 版本发布,在此版本中更名为 FlowRenderer
  • 使用默认模板的 Popup 现在会将附件显示为缩略图,而不是列出链接。
  • Directions.lastRoute and DirectionsViewModel.lastRoute现在返回RouteLayerSolveResult类型的值。
  • 使用 add()addMany() 添加到 DirectionsViewModel.stops 的停靠点必须属于 Stop 类型而不是 Graphic 类型。
  • SliceViewModel.clear()现在仅清除 SliceSliceViewModel.shape,而不会影响 SliceViewModel.excludedLayersSliceViewModel.excludeGroundSurface。如果需要,应手动清除这些属性。
  • SceneView 中,在标签外部使用的 TextSymbolTextSymbol3DLayer 的默认垂直对齐方式已从middle更改为baseline。要恢复到以前版本的对齐行为,请将文本符号的verticalAlignment设置为middle

以下类、方法、属性和事件已在至少 2 个版本中弃用,现已从 API 中删除:

类/属性/方法/事件 备用选项 弃用版本
TimeSlider.values timeExtent 4.20
TimeSliderViewModel.values timeExtent 4.20
PointDrawAction.coordinates verticles 4.19
Editor.layerInfos[].fieldConfig layerInfos[].formTemplate.elements[] 4.21
Editor.supportingWidgetDefaults.FeatureForm.fieldConfig layerInfos[].formTemplate.elements[] 4.21

4.24 发布时间: 2022-07

  • 自 4.20 起,Task 类已弃用。它们在 4.24 被删除。取而代之的是 esri/rest 文件夹中的类和模块。这样可以更轻松地将代码合并到更加模块化的应用程序设计中,并减少不必要的依赖项(仅导入所需的内容)。新的 rest 模块不需要构造函数,可以直接使用它们的方法。请参阅下面的已删除 Task 类的完整列表。
  • 如果应用程序方向是从右到左,则 MapView 或 SceneView 中默认微件的位置将不再更改。
  • 该 API 现在默认使用 WebGL2,并且会根据浏览器的不同回退到 WebGL1。仅限 WebGL1 的扩展的自定义 WebGL 图层需要更新以检测存在哪个上下文,从而使用正确的扩展或原生 WebGL2 功能。
  • 属性datedisplayUTCOffset已从VirtualLighting中删除,因为此照明类型不依赖于日期和时间。但这意味着 view.environment.lighting 属性并不总是具有datedisplayUTCOffset 属性。对于某些假定此属性始终存在的应用程序,这可能是重大更改。
  • MapView.hitTest 和 SceneView.hitTest 结果现在返回 GraphicHit、MediaHit 和 RouteHit 结果的数组。使用了 hitTest() 方法的程序应该更新以检查结果类型。

以下类、方法、属性和事件已在至少 2 个版本中弃用,现已从 API 中删除:

类/属性/方法/事件 备用选项 弃用版本
FieldConfig.editorType 通过在 FeatureForm 模板的 FileldElement 中设置的 TextAreaInput 或 TextBoxInput 来设置编辑器类型。 4.16
Bookmark.extent Bookmark.viewpoint 4.17
promiseUtils.reject Promise.reject() 4.19
promiseUtils.resolve Promise.resolve() 4.19
widget.renderable 现在会自动跟踪所有属性,不需要使用此装饰器进行装饰。 4.19
LocatorSearchSource.locator LocatorSearchSource.url 4.22

以下 Task 类已在至少 3 个版本中弃用,现已从 API 中删除:

移除的 Task 类 替代选项 弃用版本
esri/portal/Portal/createClosestFacilityTask esri/rest/closestFacilityPortal.helperServices 4.21
esri/portal/Portal/createGeometryService esri/rest/geometryServicePortal.helperServices 4.21
esri/portal/Portal/createPrintTask esri/rest/printPortal.helperServices 4.21
esri/portal/Portal/createRouteTask esri/rest/routePortal.helperServices 4.21
esri/portal/Portal/createServiceAreaTask esri/rest/serviceAreaPortal.helperServices 4.21
esri/tasks/ClosestFacilityTask esri/rest/closestFacility 4.20
esri/tasks/FindTask esri/rest/find 4.20
esri/tasks/GeometryService esri/rest/geometryService 4.20
esri/tasks/Geoprocessor esri/rest/geoprocessor 4.20
esri/tasks/IdentifyTask esri/rest/identify 4.20
esri/tasks/ImageIdentifyTask esri/rest/imageService 4.20
esri/tasks/ImageServiceIdentifyTask imageService.identify 4.20
esri/tasks/Locator esri/rest/locator 4.20
esri/tasks/PrintTask esri/rest/print 4.20
esri/tasks/QueryTask esri/rest/query 4.20
esri/tasks/RouteTask esri/rest/route 4.20
esri/tasks/ServiceAreaTask esri/rest/serviceArea 4.20
esri/tasks/Task n/a 4.20
esri/tasks/supportAddressCandidate esri/rest/support/AddressCandidate 4.20
esri/tasks/supportAlgorithmicColorRamp esri/rest/support/AlgorithmicColorRamp 4.20
esri/tasks/supportAreasAndLengthsParameters esri/rest/support/AreasAndLengthsParameters 4.20
esri/tasks/supportAttachmentQuery esri/rest/support/AttachmentQuery 4.20
esri/tasks/supportBufferParameters esri/rest/support/BufferParameters 4.20
esri/tasks/supportClosestFacilityParameters esri/rest/support/ClosestFacilityParameters 4.20
esri/tasks/supportClosestFacilitySolveResult esri/rest/support/ClosestFacilitySolveResult 4.20
esri/tasks/supportColorRamp esri/rest/support/ColorRamp 4.20
esri/tasks/supportDataFile esri/rest/support/DataFile 4.20
esri/tasks/supportDataLayer esri/rest/support/DataLayer 4.20
esri/tasks/supportDensifyParameters esri/rest/support/DensifyParameters 4.20
esri/tasks/supportDirectionsFeatureSet esri/rest/support/DirectionsFeatureSet 4.20
esri/tasks/supportDistanceParameters esri/rest/support/DistanceParameters 4.20
esri/tasks/supportFeatureSet esri/rest/support/FeatureSet 4.20
esri/tasks/supportFindParameters esri/rest/support/FindParameters 4.20
esri/tasks/supportFindResult esri/rest/support/FindResult 4.20
esri/tasks/supportGeneralizeParameters esri/rest/support/GeneralizeParameters 4.20
esri/tasks/supportGPMessage esri/rest/support/GPMessage 4.20
esri/tasks/supportIdentifyParameters esri/rest/support/IdentifyParameters 4.20
esri/tasks/supportIdentifyResult esri/rest/support/IdentifyResult 4.20
esri/tasks/supportImageIdentifyParameters esri/rest/support/ImageIdentifyParameters 4.18
esri/tasks/supportImageIdentifyResult esri/rest/support/ImageIdentifyResult 4.18
esri/tasks/supportImageHistogramParameters esri/rest/support/ImageHistogramParameters 4.20
esri/tasks/supportImageServiceIdentifyParameters esri/rest/support/ImageServiceIdentifyParameters 4.20
esri/tasks/supportImageServiceIdentifyResult esri/rest/support/ImageServiceIdentifyResult 4.20
esri/tasks/supportJobInfo esri/rest/support/JobInfo 4.20
esri/tasks/supportLegendLayer esri/rest/support/LegendLayer 4.20
esri/tasks/supportLengthsParameters esri/rest/support/LengthsParameters 4.20
esri/tasks/supportLinearUnit esri/rest/support/LinearUnit 4.20
esri/tasks/supportMultipartColorRamp esri/rest/support/MultipartColorRamp 4.20
esri/tasks/supportNAMessage esri/rest/support/NAMessage 4.20
esri/tasks/supportOffsetParameters esri/rest/support/OffsetParameters 4.20
esri/tasks/supportParameterValue esri/rest/support/ParameterValue 4.20
esri/tasks/supportPrintParameters esri/rest/support/PrintParameters 4.20
esri/tasks/supportPrintTemplate esri/rest/support/PrintTemplate 4.20
esri/tasks/supportProjectParameters esri/rest/support/ProjectParameters 4.20
esri/tasks/supportQuery esri/rest/support/Query 4.20
esri/tasks/supportRasterData esri/rest/support/RasterData 4.20
esri/tasks/supportRelationParameters esri/rest/support/RelationParameters 4.20
esri/tasks/supportRelationshipQuery esri/rest/support/RelationshipQuery 4.20
esri/tasks/supportRouteParameters esri/rest/support/RouteParameters 4.20
esri/tasks/supportRouteResult esri/rest/support/RouteResult 4.20
esri/tasks/supportServiceAreaParameters esri/rest/support/ServiceAreaParameters 4.20
esri/tasks/supportServiceAreaSolveResult esri/rest/support/ServiceAreaSolveResult 4.20
esri/tasks/supportStatisticDefinition esri/rest/support/StatisticDefinition 4.20
esri/tasks/supportTrimExtendParameters esri/rest/support/TrimExtendParameters 4.20

4.25 发布时间: 2022-12

  • AggregateField 已退出 beta 版,不再具有 outStatistic属性。聚合字段现在使用 onStatisticFieldonStatisticExpression 定义。
  • MapNotesLayer.listMode 的默认值已经从 show 改为 hide-children
  • VectorTileLayer.setSpriteSource() 方法现在接受 SpriteSourceUrlInfo 或 SpriteSourceImageInfo 对象,而不是指向 SpriteSource 的 URL 字符串。
  • ClosestFacilitySolveResultfacilitiesincidentspointBarriers属性值类型和 ServiceAreaSolveResultfacilitiespointBarriers 属性值类型已经从 Point[]类型更改为 FeatureSet 类型。
  • ClosestFacilitySolveResultpolygonBarriers属性值类型和 ServiceAreaSolveResultpolygonBarriers已经从 Polygon[]改为 FeatureSet
  • ClosestFacilitySolveResultpolylineBarriers属性值类型 和 ServiceAreaSolveResultpolylineBarriers 的属性值类型已经从 Polyline[] 改为 FeatureSet
  • ClosestFacilitySolveResultroutes属性、 ServiceAreaSolveResultserviceAreaPolygons属性和 ServiceAreaSolveResultserviceAreaPolylines属性的值类型已经从 Graphic[] 改为 FeatureSet.
  • 已删除 PopupTemplate.relatedRecordsInfo 属性。使用 RelationsContent.orderByFields 属性可以控制在 popup 中处理相关记录时的排序参数。
  • RasterShadedReliefRenderer.hillshadeType的默认值已从multi-directional改为traditional
  • 初始化时,WebMap 中的时间滑块设置将不再自动应用于 TimeSlider 组件。请改用getPropertiesFromWebMap 方法。

以下类、方法、属性和事件已在至少 2 个版本中弃用,现已从 API 中删除:

类、属性、方法、事件 替代选项 过期版本
esri/views/layers/support/FeatureEffect esri/layers/support/FeatureEffect 4.22
esri/views/layers/support/FeatureFilter esri/layers/support/FeatureFilter 4.22
BasemapToggle.toggleBasemapToggleViewModel.toggle 事件 activeBasemap属性 4.22
CSVLayerView.effect CSVLayerView.featureEffect 4.22
FeatureLayerView.effect FeatureLayerView.featureEffect 4.22
GeoJSONLayerView.effect GeoJSONLayerView.featureEffect 4.22
OGCFeatureLayerView.effect OGCFeatureLayerView.featureEffect 4.22
PrintViewModel.scaleEnabled TemplateOptions.scaleEnabledPrintTemplate.scalePreserved 4.22
SearchViewModel.defaultSymbol SearchViewModel.defaultSymbols 4.22
StreamLayerView.effect StreamLayerView.featureEffect 4.22
WFSLayerView.effect WFSLayerView.featureEffect 4.22

4.26 发布时间: 2023-03

  • ImageryTileLayer 的默认标题与其他图层一样从其 URL 创建,而不是服务根资源中的 name 属性。
  • Editor.layerInfosupdateEnabled 设置为 false 不会禁用删除要素的功能。在此版本之前,将 updateEnabled 设置为 false 将阻止对要素的更新和删除。现在,如果需要删除,则还需要将 deleteEnabled 设置为 true。
  • VoxelIsosurface.colorLock 的默认值从 true 更改为 false。
  • Editor 组件的 UI 已略有更新,现在使用折叠组件而不是弹出框显示捕捉设置。
  • GraphSearchStreamingglobalIdsFilter 属性被替换为 idsFilter
  • networkService.fetchServiceDescription() 方法现在返回一个对象,其 defaultTravelMode 属性类型为 TravelMode 而不是字符串类型。

以下类、方法、属性和事件已在至少 2 个版本中弃用,现已从 API 中删除:

类、属性、方法、事件 替代选项 过期版本
esri/widgets/Slice/SlicePlane esri/analysis/SlicePlane 4.23
注:本文档会一直保持更新。尽量同步更新。

参考资料

[1] Breaking changes . https://developers.arcgis.com/javascript/latest/breaking-chan...
[2] https://developers.arcgis.com/downloads/#javascript

你可能感兴趣的:(译:ArcGIS JS API 4.x 历史版本及关键更新)