译: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-add
、layer-remove
和layer-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
属性中的两个:address
和attributes
。 请注意,其他 AddressCandidate 属性(extent
、location
和score
) 没有变化。- 在 4.4 之前,locationToAddress() 错误地返回一个始终具有空
attributes
属性的对象,address
字符串是一个对象。 从 4.4 开始,address
属性是一个字符串,attributes
属性将不再为空。 - 指定一个字段,如:
CountryCode
,现在的写法是attributes.CountryCode
。 之前的版本中写法为address.CountryCode
。 - 示例 Intro to popups 为了反映此更新已经更改。
- 在 4.4 之前,locationToAddress() 错误地返回一个始终具有空
- Esri icon font 样式和代码已更新,部分代码已经被更改或用于新图标字体。
ViewAnimation.stop()
不再返回ViewAnimation
promise.Symbol3DLayer
的 type 属性值调整了命名风格,为了和剩余的 API 保持一致,现在使用 keaba-casing 命名风格。- 三维 WebStyleSymbols 的方向属性更新了。现在符号的前端指向 y 轴方向(北)。将
ObjectSymbol3DLayer
的 heading 属性设置为 0,符号将指向北;设置为 180,则符号指向南。与旧样式相比,signs
和signals
以及Street scene
方向改变了 180 度,Transportation
改变了 90 度。 - 从版本 4.x 开始,在图层中传输 token 参数的推荐方法是使用
IdentityManager.registerToken()
。 在此之前的 3.x 中,可以通过 1) 图层的 token 属性,或者 2) 将 token 参数追加到图层 URL 的末尾来将 token 参数传递给图层。 Search
组件的sources
属性有一个新的filter
属性,它取代了现在已弃用的searchQueryParams
、suggestQueryParams
和searchExtent
属性。- 如果开发自定义组件,则应更新配置设置以反映
"jsxFactory": "tsx"
,而不是"reactNamespace":"jsxFactory"
。这在 TypeScript 设置指南主题中进行了讨论。 - 对于传递到
external renderers
的光源值,环境光源和漫反射射光源之间的平衡已更改。这可能会导致与使用external renderers
渲染的对象的外观略有不同。新的光源值表示线性颜色空间中的颜色/强度,并针对灰度系数值为 2.1 的伽玛校正渲染进行了优化。 - 在版本 4.4 中,如果单击的位置未与配置了
popup template
的要素相交,则 view.click 事件将关闭弹出窗口。如果打开了包含自定义内容的弹出窗口,您可能希望禁用此默认行为,或者在 view.click 时使其保持打开状态。为了实现这个,您必须在单击事件对象上调用stopPropagation()
。
4.5 发布时间: 2017-09
- 所有
render
、symbol
、symbol layer
类的type
属性不再是只读。 更改了许多
renderer
的type
值,以实现统一的 kebab-casing 命名风格:UniqueValueRenderer.type
值uniqueValue
改为unique-value
。ClassBreaksRenderer.type
值classBreaks
改为class-breaks
。PointCloudClassBreaksRenderer.type
值pointCloudClassBreaksRenderer
改为point-cloud-class-breaks
。PointCloudRGBRenderer.type
值pointCloudRGBRenderer
改为point-cloud-rgb
。PointCloudStretchRenderer.type
值pointCloudStretchRenderer
改为point-cloud-stretch
。PointCloudUniqueValueRenderer.type
值pointClo
udUniqueValueRenderer改为
point-cloud-unique-value`。SimpleMarkerSymbol.type
值simple-marker-symbol
改为simple-marker
。SimpleLineSymbol.type
值simple-line-symbol
改为simple-line
。SimpleFillSymbol.type
值simple-fill-symbol
改为simple-fill
。PictureMarkerSymbol.type
值picture-marker-symbol
改为picture-marker
。PictureFillSymbol.type
值picture-fill-symbol
改为picture-fill
。TextSymbol.type
值text-symbol
改为text
。PointSymbol3D.type
值point-symbol-3d
改为point-3d
。LineSymbol3D.type
值line-symbol-3d
改为line-3d
。PolygonSymbol3D.type
值polygon-symbol-3d
改为polygon-3d
。MeshSymbol3D.type
值mesh-symbol-3d
改为mesh-3d
。LabelSymbol3D.type
值label-symbol-3d
改为label-3d
。WebStyleSymbol.type
值web-style-symbol
改为web-style
。
- 当在API 4.5 保存场景到 Portal 10.5.1 或者更老的版本时,
ElevationLayer
总是可见的。 Search sources
的zoomScale
属性自动使用 scale 属性。在之前的版本中,只能缩放到特定比例尺,如果搜索结果没有相关的 extent 值的话。- Search 组件的
search
方法返回一个 Promise 对象,当 resolve 时,Promise 返回一个类似于search-complete
事件的SearchResponse
对象。 - Search 组件及其相应的 ViewModel 的
suggest()
方法都返回一个 Promise,当 resolve 时, Promise 返回类似于suggest-complete
事件的SuggestResponse
对象。 - 移除了
SearchViewModel
的cancelSuggest
方法。 - 移除了 Graphic 的
getEffectivePopupTemplate
方法。如果 Graphic 的popupTemplate
未定义,将使用 Graphic 所在图层的popupTemplate
。 - 移除了 ElevationLayer 的 minScale 和 maxScale 属性。
4.6 发布时间: 2017-12
attributionText
和itemDelimiter
已经从 AttributionViewModel 移动到 Attribution 组件。- 局部场景的 altitude 限制不再有效。
SceneView.goTo
和MapView.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。- 移除了
ClassBreaksRenderer
的classificationMethod
。 - 移除了
LayerList
和LayerListViewModel
的createActionsFunction
属性,使用listItemCreatedFunction
替代。 - 移除了
draw-complete
的graphic
属性。 - 移除了
LayerSymbol3D
的styleOrigin
属性。 - 移除了所有类的
then()
方法,当用到 Promise 时,使用when()
替代。
4.8 发布时间: 2018-07
- 更正了
TemplateOptions
的format
和layout
,保持和文档一致。 - 移除了
pointSizeAlgorithm
的minSize
属性。 FeatureLayerView.queryFeatures()
和CSVLayerView.queryFeatures()
现在返回一个FeatureSet
。SketchViewModel.update()
现在接收graphic
,而不是geometry
。SketchViewModel
的draw-start
被重命名为create-init
,draw-cancel
被重命名为create-cancel
,draw-complete
被重命名为create-complete
,update-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()
代替。- 在
Renderers
和visualVariables
中不能再使用 Function 替代字段,可以改为使用valueExpression
。 - 移除了 esriConfig 的
request
的属性:corsDetection
,corsDetectionTimeout
,corsEnabledServeres
,forceProxy
和useCors
属性。 - 移除了
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.query
的supportsAttachments
属性已被移除。- 使用客户端要素创建 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
类。 - 移除了
MapNotesLayer
的Legend
支持。 - 从所有图层类中删除了
token
属性。在图层上传递token
的推荐方法是使用IdentityManager.registerToken()
或使用esriConfig.request.interceptors
。 - 从
Feature widget
和FeatureViewModel
中删除了view
属性。 MapImageLayer.getImageUrl()
方法现在返回 null。AttachmentQuery
类的definitionExpression
属性重命名为where
。RelationshipQuery
类的definitionExpression
属性重命名为where
。TemplateItemGroup.name
重命名为TemplateItemGroup.label
。FeatureLayerSearchSource
类重命名为LayerSearchSource
。- 重命名的 LayerSearchSource 类现在采用
Layer
属性,而不是FeatureLayer
。 Directions.SearchProperties
对象中的sources
属性现在采用LayerSearchSource
,而不是FeatureLayerSearchSource
。
- 重命名的 LayerSearchSource 类现在采用
作为添加 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 对象有两个属性:location
和locationType
。 SceneLayerView
中的查询方法queryExtent()
、queryFeatureCount()
、queryFeatures()
和queryObjectIds()
需要返回的字段需要提前使用SceneLayer.outFields
定义。- 更改了 SceneView 中颜色的行为,使其与 MapView 保持一致。如果图形的颜色值设置为 null,则它将显示为透明。
- 现在为 3D 标签类上的 where 子句提供了完整的 SQL 支持。旧版 where 子句未实现严格的 SQL 语法,可能会中断。
- 将类
Search
、SearchLayer
和SearchLayerField
从webscene.applicationProperties
移动到webdoc.applicationProperties
模块,这是 WebMap 和 WebScene 的通用模块。 - 移除了 Popup 的
actionsMenuEnabled
属性。 - 移除了
DotDensityRender
中的dotBlendingEnabled
和referenceDotValue
属性。 - 移除了
Search
组件和Locator
组件中的distance
参数,因为他已经被启用且 World Geocoding Service 不再支持。 - 移除了 Search 组件的
localSearchOptions
和locationToAddressDistance
属性,他们在版本 4.11 中已经启用。 - 从基类 Symbol3DLayer 中删除了
material
属性。此更新使得 Symbol3DLayer 的子类实现了独立的material
属性。 - 从
ImageServiceIdentifyParameters
中移除了noData
属性。 - 从
TimeInfo
类中移除了timeExtent
属性,使用fullTimeExtent
属性替代。 SizeSlider
、ColorSlider
、ColorSizeSlider
从esri/widgets/
路径移动到esri/widgets/smartMapping/
路径。PopupTemplate
的content
和title
不能再使用通配符进行设置,例如 *。相反,请将弹出窗口的defaultPopupTemplateEnabled
属性设置为 true。PopupTemplate
的content
和title
属性将不再支持格式化函数DateString
、DateFormat
和NumberFormat
,可以使用FieldInfo
的FieldInfoFormat
替代格式化函数。ElevationLayer.fetchTile()
方法中的noDataValue
参数已经嵌入到options
参数中。PopupTemplate
的content
和title
属性不再支持参数化的函数。- 当
PathSymbol3DLayer
的height
和width
属性都没有设置时,符号将不会渲染出来。之前的版本中如果没有设置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
中删除了pixelSizeX
和pixelSizeY
属性。请改用pixelSize
属性。 - 从
ImageryLayer
中移除了domainFields
属性,改为使用fields
属性。 - 从
ImageryLayer
中移除了hasRasterAttributeTable
和rasterAttributeTable
属性,使用serviceRasterInfo.attributeTable
替代。 - 从 Sketch 和 SketchViewModel 中删除了
reset
方法。在相应的类上使用cancel
方法替代。 - 移除了
SliderViewModel
类的value-change
事件。 - 删除了直方图组件条形图上的默认
tabindex
。所有实现直方图的滑块组件(包括直方图范围滑块和所有智能制图滑块)都受此更改的影响。若要按 Tab 键浏览直方图条形图,开发人员应使用barCreatedFunction
将每个条形图元素的 tabindex 设置为 0。 - 移除了
StreamLayer
的filter
属性和updateFilter
属性。 - 从
StreamLayerView
中移除了connect
、disconnect
、graphics
、updateFilter
属性。
4.14 发布时间: 2019-12
- 当事件在 View上的传播(事件冒泡)停止时,任何派生事件的传播都将停止。例如,当对
immediate-click
事件调用 stopPropagation() 时,不再触发click
和double-click
事件。当在pointer-up
事件上调用 stopPropagation() 时,不再触发immediate-click
、click
和double-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-change
和value-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
中删除了capabilities
和version
属性。 - 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 实例,该实例的start
和end
属性的值为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 类现在可以正确地将其类型实现为
button
或toggle
。在此之前,它被设置为string
。 - Feature 组件以及其相关的 ViewModel 中的 g
oToMedia()
方法已重命名为setActiveMedia
。 - WebMap 的
tables
属性现在采用图层集合,而不是对象数组。 TimeSlider.loop
属性现在的默认值为false
,而不是true
。- 所有图层和表的服务元数据现在都从
FeatureServer/layers/REST
端点集中获取,而不是每个图层从其专用端点(例如FeatureServer/<layerID>
)获取其元数据。 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 开始弃用。请改用pointBarriers
、polygonBarriers
和polylineBarriers
。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 输入类型
Input
和TextInput
已被删除,以便仅公开其子类类型。这些子类类型包括TextAreaInput
、TextBoxInput
和DateTimePickerInput
。除了这三种类型外,4.19 中还包括一些新的输入类型。其中包括BarcodeScannerInput
、RadioButtonsInput
和ComboBoxInput
。Input
和TextInput
未删除任何属性或功能。这两个类的属性现在可以直接从其子类访问。 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 仍可用作可选方法参数):ClosestFacilityTask
、FindTask
、GeometryService
、IdentifyTask
、ImageIdentifyTask
、ImageServiceIdentifyTask
、PrintTask
、RouteTask
、ServiceAreaTask
。 以下类、方法、属性和事件已在至少 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
注:本文档会一直保持更新。尽量同步更新。
参考资料
[1] Breaking changes . https://developers.arcgis.com/javascript/latest/breaking-chan...
[2] https://developers.arcgis.com/downloads/#javascript