重大更改

字数统计: 6k
阅读时长: 约 17 分钟
当前版本: 4.29

GeoScene Maps SDK for JavaScript 所有重大更改的综合指南,按发布版本排序。本指南有助于用户在其应用中升级 API 版本。

4.29

  • 在版本 4.29 中,仅启用 WebGL2 的浏览器支持 2D 和 3D。有关详细信息,请参阅系统要求

  • 对于本地构建,不建议在 4.29 中使用 5.84.0 之前的 Webpack 版本。这与 Webpack 中的错误修复有关。

  • MapView 上的 hitTest() 方法不再在 VectorTileLayer 所返回图形的属性中包含 layerIdlayerIndex。要获取此信息,请改用图形的原点属性。有关详细信息,请参阅 VectorTileLayer hitTest 部分。

  • VectorTileLayer命中测试结果中返回的图形图层属性现在为 null。 使用 origin.layer 属性访问图形源自哪个 VectorTileLayer。

  • 在版本 4.29 中,ListItemPanel 不包含任何内边距。

  • FeatureLayer 无法再使用 labelExpression 进行标记, labelExpression 仅与 MapImageLayer 一起使用。请改为使用 labelExpressionInfo

  • WFSLayer 现在在从服务中获取要素时使用分页,这意味着将发送多个请求来检索要素,而不仅仅是一个请求。要匹配前面的行为,请设置 maxPageCount: 1 并增加 maxRecordCount 的值。

  • 编辑器的视图模型不再创建 FeatureFormViewModelSketchViewModel 的单个实例。在此版本之前,如果给定 EditorViewModel 的实例,则其 featureFormViewModelsketchViewModel 属性在整个 EditorViewModel 生命周期中始终引用其各自视图模型类的同一单个实例。这意味着使用这些视图模型的某些操作可以运行一次,并且对所有后续编辑工作流仍然有效 (例如,设置属性或在其上安装事件侦听器)。从版本 4.29 开始,FeatureFormViewModelSketchViewModel 的新实例将用于每个编辑工作流。如果没有活动的编辑工作流,则 FeatureFormViewModelSketchViewModel 属性为 null。编辑工作流开始时,这些属性将具有值,但对它们所做的任何更改或事件处理程序仅适用于该工作流的持续时间。

  • MeshGeoreferencedRelativeVertexSpace 已移除。请改用带有原点的 MeshGeoreferencedVertexSpace。如果未指定原点,则地理配准的顶点空间将被视为绝对顶点空间。

  • 通过 create 函数 (如 createSphere) 创建的网格现在始终使用相对顶点空间创建,其中网格坐标将偏移到创建网格的位置。以前,网格坐标始终是绝对的。如果未将顶点空间类型提供为 create 函数的选项,则根据空间参考选择顶点空间。如果是地理或 WebMercator,则使用 MeshLocalVertexSpace,否则使用 MeshGeoreferencedVertexSpace

  • 现在,网格 centerAt 将使网格相对于网格顶点空间的原点居中。以前,使用 createSphere 在某个位置创建一个球体,然后调用 centerAt (以相同位置作为参数),可移动球体,使球体中心与该位置对齐。现在,使用创建网格的同一位置调用 centerAt 不会有任何效果。请使用偏移或通过 mesh.extent.height/2 来调整 centerAt 位置。

  • 在此版本中,Popup 类中的 FetchPopupFeaturesResult 类型定义从 API 中删除了以下属性:

属性替换
FetchPopupFeaturesResult.clientOnlyGraphicsFetchPopupFeaturesResult.allGraphicsPromise
FetchPopupFeaturesResult.promisesPerLayerViewFetchPopupFeaturesResult.allGraphicsPromise
FetchPopupFeaturesPromisesPerLayerViewN/A

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

类/属性/方法/事件备用选项弃用版本
CreateWorkflowCreateFeaturesWorkflow4.23
CreateWorkflowDataCreateFeaturesWorkflowData4.23
Editor.startCreateWorkflowAtFeatureCreationEditor.startCreateFeaturesWorkflowAtFeatureCreation4.23
Editor.startCreateWorkflowAtFeatureEditEditor.startCreateFeaturesWorkflowAtFeatureEdit4.23
Editor.startCreateWorkflowAtFeatureTypeSelectionEditor.startCreateFeaturesWorkflowAtFeatureTypeSelection4.23
Editor.useDeprecatedCreateWorkflow不再适用4.23
EditorViewModel.startCreateWorkflowAtFeatureCreationEditorViewModel.startCreateFeaturesWorkflowAtFeatureCreation4.23
EditorViewModel.startCreateWorkflowAtFeatureEditEditorViewModel.startCreateFeaturesWorkflowAtFeatureEdit4.23
EditorViewModel.startCreateWorkflowAtFeatureTypeSelectionEditorViewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection4.23
FeatureFormViewModel.inputFieldsFeatureFormViewModel.inputs4.27
FeatureTable.clearHighlights()FeatureTable.highlightIds 调用 removeAll4.25
FeatureTableViewModel.clearHighlights()FeatureTableViewModel.highlightIds 调用 removeAll4.25
FieldElement.editableFieldElement.editableExpression4.26
InputFieldFieldInput4.27
InputFieldGroupGroupInput4.27
Locate.useHeadingEnabled不再适用4.27
Track.useHeadingEnabledTrack.rotationEnabled4.27

4.28

移除 watchUtils

watchUtils 类自版本 4.24 起已弃用,并已从此版本的 API 中移除。这是一个重大更改,应用程序需改用 reactiveUtils,它提供了显著改进的实用程序和便利功能,用于监视从 Accessor 继承的属性。

显示 watchUtils 方法替换
watchUtils 方法reactiveUtils 方法
watchUtils.init()reactiveUtils.watch(),其中 ReactiveWatchOptions initial 属性设置为 true
watchUtils.on()reactiveUtils.on()
watchUtils.once()reactiveUtils.once()
watchUtils.pausable()n/a
watchUtils.watch()reactiveUtils.watch()
watchUtils.when()reactiveUtils.when()
watchUtils.whenDefined()reactiveUtils.when()
watchUtils.whenDefinedOnce()reactiveUtils.whenOnce()
watchUtils.whenEqual()reactiveUtils.when()
watchUtils.whenEqualOnce()reactiveUtils.whenOnce()
watchUtils.whenFalse()reactiveUtils.when()
watchUtils.whenFalseOnce()reactiveUtils.whenOnce()
watchUtils.whenNot()reactiveUtils.when()
watchUtils.whenNotOnce()reactiveUtils.whenOnce()
watchUtils.whenOnce()reactiveUtils.whenOnce()
watchUtils.whenTrue()reactiveUtils.when()
watchUtils.whenTrueOnce()reactiveUtils.whenOnce()
watchUtils.whenUndefined()reactiveUtils.when()
watchUtils.whenUndefinedOnce()reactiveUtils.whenOnce()

TypeScript 重大更改

  • IPromise 4.28 中移除了 TypeScript 定义。请改为使用本机 Promise

  • 在 4.28 中移除了 *Constructor TypeScript 定义的所有实例。将 __geoscene.ModuleConstructor 的用法更新为 typeof __geoscene.Module,或从 typings 中 import 模块并将类型赋值改为 typeof Module,例如:

js
// Type definitions at 4.27 and earlier
type IGeoSceneDeps = [
 __geoscene.MapConstructor,
 __geoscene.MapViewConstructor
];

// Type definitions at 4.28 and later
type IGeoSceneDeps = [
 typeof __geoscene.Map,
 typeof __geoscene.MapView
];

其他重大更改

  • 经过身份验证的用户是图层所有者、管理员或具有完全编辑权限的用户,其提升的用户权限将应用于编辑行为和数据中可用的行为。要选择退出,请将 geosceneConfig.userPrivilegesApplied 设置为 false

  • OAuthInfo.flowTypeautoauthorization-code 值不再检查 popup 属性是否设置为 truefalse。此更改会影响使用 auto flowType 并将 popup 属性设置为 true 的应用程序。需要更新正在使用的回调页面,以支持双因素身份验证。为此,我们更新了默认的 oauth-callback.html 以支持两步方法,但如果使用一步流程,它仍然有效。

  • PopupFeaturesFeature 微件中,date 字段的默认格式现在是 short-date-short-time,而不是 long-month-day-year。例如,以前显示为 December 30, 1997 的日期现在将显示为 12/30/1997 6:00 PM

  • VoxelLayer.popupEnabled 的默认值已从 true 更改为 false

  • MapView.goToMapView.toScreen 的默认行为已更改为根据视图中心自动规范化。将 GoToOptions2DToScreenOptions2D 中的 pickClosestTarget 设为 false 可禁用此行为。

  • 由于 Popup 微件重构为使用 Calcite 组件,因此移除了该微件上的 maxInlineActions 属性。

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

类/属性/方法/事件备用选项弃用版本
watchUtils请改为使用 reactiveUtils4.24
FeatureTable.fieldConfigs[]使用 FeatureTable 的 tableTemplate 属性设置字段列。这样即可访问 columnTemplates4.24
FeatureTableViewModel.fieldConfigs[]使用 FeatureTable 的 tableTemplate 属性设置字段列。这样即可访问 columnTemplates4.24
FieldColumnConfig请改为使用 FieldColumnTemplate4.23
FieldGroup请改为使用 FieldElement4.23
FieldGroupConfig如果使用 FeatureForm 微件,则使用 GroupElement;如果使用 FeatureTable 微件,请使用 GroupColumnTemplate4.23
UtilityNetwork.rulesTableId请改为使用 UtilityNetwork.networkSystemLayers.rulesTableId4.25
UtilityNetwork.rulesTableUrl请改为使用 UtilityNetwork.networkSystemLayers.rulesTableUrl4.25
UtilityNetwork.subnetworksTableId请改为使用 UtilityNetwork.networkSystemLayers.subnetworksTableId4.25
UtilityNetwork.subnetworksTableUrl请改为使用 UtilityNetwork.networkSystemLayers.subnetworksTableUrl4.25

4.27

  • Popup 微件的加载会被延迟,直到视图准备就绪且已完成更新,并且仅当 View.popupEnabled 设置为 true (默认值)、调用 View.openPopup() 或某些微件 (如 Search) 需要弹出窗口时,才会加载该微件。在大多数情况下,应用程序无需更新,可以继续运行。但是,如果试图在实例化之前访问 view.popup 属性,可能会出现一些问题。有关如何更新应用程序以利用这些改进性能的详细信息,请参阅加载弹出窗口。或者,您也可以在实例化视图时简单创建一个新的弹出窗口实例,如以下代码片段所示。注意:此代码未利用延迟加载。
js
// Create a new MapView
const view = new MapView({
 // set the popup property to a new instance of Popup
 popup: new Popup(...)
});

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

类/属性/方法/事件备用选项弃用版本
promiseUtils.create()Promise4.24
Directions.routeServiceUrl来自 Directions.layerurl4.24
Directions.routeSymbol来自 Directions.layerdirectionLines4.24
Directions.stopSymbols来自 Directions.layerRouteStopSymbols4.24
DirectionsViewModel.highlightSegment()DirectionsViewModel.highlight()4.24
DirectionsViewModel.routeServiceUrl来自 DirectionsViewModel.layerurl4.24
DirectionsViewModel.routeSymbol来自 DirectionsViewModel.layerdirectionLines4.24
DirectionsViewModel.stops来自 DirectionsViewModel.layerstops4.24
DirectionsViewModel.stopSymbols来自 DirectionsViewModel.layerRouteStopSymbols4.24
geoscene/layers/support/ImageParametersgeoscene/rest/support/ImageParameters4.24

4.26

  • 现在,ImageryTileLayer 的默认标题可像其他图层一样从其 URL 创建,而不是从服务根资源的 name 属性进行创建。

  • Editor.layerInfos updateEnabled 设置为 false 不会禁用 delete 功能。在此版本之前,将 updateEnabled 设置为 false 将阻止更新和删除某个要素。现在,如果要执行删除操作,还需将 deleteEnabled 设置为 true

  • VoxelIsosurface.colorLocked 的默认值已从 true 更改为 false

  • Editor 微件的 UI 已进行细微更新,以使用 accordion 组件而不是 popover 显示捕捉设置。

  • GraphSearchStreamingglobalIdsFilter 属性已替换为 idsFilter

  • 现在,networkService.fetchServiceDescrip 方法会返回一个 TravelMode 类型的 defaultTravelMode 属性对象,而不是字符串类型。

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

类/属性/方法/事件备用选项弃用版本
geoscene/widgets/Slice/SlicePlanegeoscene/analysis/SlicePlane4.23

知识图谱 beta 版更改

knowledgeGraphService 仍处于测试阶段。仅 GeoScene Enterprise 4.1 及更高版本才支持 4.26 版本中的功能。要在 GeoScene Enterprise 4.0 及更早版本中访问 knowledgeGraphService,请使用版本 4.25。

在 4.26/Enterprise 4.1 中,更新了知识图谱服务的数据模型和服务定义。除 GraphSearchStreaming.globalIdsFilter 外,此更改不会破坏使用 knowledgeGraphService 方法编写的客户端代码。下表列出了本次版本中移除的知识图谱属性:

属性备用选项
KnowledgeGraph.dataModelfetchKnowledgeGraph() 返回数据模型
GraphSearchStreaming.globalIdsFilteridsFilter
GraphProperty.searchableSearchIndex
RelationshipType.destinationEntityTypes 和 RelationshipType.originEntityTypesRelationshipType.endpoints
RelationshipType.strictOrigin 和 RelationshipType.strictDestinationnone

4.25

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

类/属性/方法/事件备用选项弃用版本
geoscene/views/layers/support/FeatureEffect改为使用 geoscene/layers/support/FeatureEffect4.22
geoscene/views/layers/support/FeatureFilter改为使用 geoscene/layers/support/FeatureFilter4.22
BasemapToggle.toggle 和 BasemapToggleViewModel.toggle 事件另请注意 activeBasemap 属性4.22
CSVLayerView.effect改为使用 CSVLayerView.featureEffect4.22
FeatureLayerView.effect改为使用 FeatureLayerView.featureEffect4.22
GeoJSONLayerView.effect改为使用 GeoJSONLayerView.featureEffect4.22
OGCFeatureLayerView.effect改为使用 OGCFeatureLayerView.featureEffect4.22
PrintViewModel.scaleEnabled改为使用 TemplateOptions.scaleEnabledPrintTemplate.scalePreserved4.22
SearchViewModel.defaultSymbol改为使用 SearchViewModel.defaultSymbols4.22
StreamLayerView.effect改为使用 StreamLayerView.featureEffect4.22
WFSLayerView.effect改为使用 WFSLayerView.featureEffect4.22

4.24

  • 自 4.20 起,任务已弃用。它们在 4.24 中已被移除。可改为使用 geoscene/rest 文件夹中的类和模块。这将使您的代码更易融入到更模块化的应用程序设计中,并减少不必要的依赖性(您只需导入所需内容即可)。新的 rest 模块是不需要构造函数的函数,因此您可立即使用它们的方法。请参阅以下 Complete list of removed tasks 下拉列表中已移除任务模块的完整列表。

  • 如果应用程序支持从右到左,则 MapView 或 SceneView 中的默认微件 UI 的位置将不再更改。

  • API 现在默认使用 WebGL2,并且会根据浏览器的不同回退到 WebGL1。使用仅 WebGL1 扩展的自定义 WebGL 图层需要更新以检测存在哪个上下文并使用正确的扩展/本机 WebGL2 功能。

  • 属性 datedisplayUTCOffset 已从 VirtualLighting 中移除,因为此照明类型不依赖于日期和时间。但这意味着 view.environment.lighting 属性并不总是具有 datedisplayUTCOffset 属性。对于某些假定此属性始终存在的应用程序,这可能是重大更改。

  • MapView.hitTestSceneView.hitTest 命中测试结果现在返回一个数组,包括 GraphicHitMediaHitRouteHit 结果。应更新使用 hitTest() 方法的现有应用程序以检查结果类型。

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

类/属性/方法/事件备用选项弃用版本
FieldConfig.editorType通过在 FeatureForm 模板字段元素中设置的 TextAreaInputTextBoxInput 类来设置编辑器类型。4.16
Bookmark.extentBookmark.viewpoint4.17
promiseUtils.rejectPromise.reject()4.19
promiseUtils.resolvePromise.resolve()4.19
widget.renderable现在,将自动跟踪所有属性,不需要使用此装饰器来装饰。4.19
LocatorSearchSource.locatorLocatorSearchSource.url4.22

以下任务已在至少 3 个版本中弃用,现已从 API 中移除:

已移除的任务备用选项弃用版本
geoscene/portal/Portal/createClosestFacilityTaskclosestFacilityhelperServices 一起使用4.21
geoscene/portal/Portal/createGeometryServicegeometryServicehelperServices 一起使用4.21
geoscene/portal/Portal/createPrintTaskprinthelperServices 一起使用4.21
geoscene/portal/Portal/createRouteTaskroutehelperServices 一起使用4.21
geoscene/portal/Portal/createServiceAreaTaskserviceAreahelperServices 一起使用4.21
geoscene/tasks/ClosestFacilityTaskclosestFacility4.20
geoscene/tasks/FindTaskfind4.20
geoscene/tasks/GeometryServicegeometryService4.20
geoscene/tasks/Geoprocessorgeoprocessor4.20
geoscene/tasks/IdentifyTaskidentify4.20
geoscene/tasks/ImageIdentifyTaskimageService4.20
geoscene/tasks/ImageServiceIdentifyTaskimageService.identify4.18
geoscene/tasks/Locatorlocator4.20
geoscene/tasks/PrintTaskprint4.20
geoscene/tasks/QueryTaskquery4.20
geoscene/tasks/RouteTaskroute4.20
geoscene/tasks/ServiceAreaTaskserviceArea4.20
geoscene/tasks/Taskn/a4.20
geoscene/tasks/supportAddressCandidateAddressCandidate4.20
geoscene/tasks/supportAlgorithmicColorRampAlgorithmicColorRamp4.20
geoscene/tasks/supportAreasAndLengthsParametersAreasAndLengthsParameters4.20
geoscene/tasks/supportAttachmentQueryAttachmentQuery4.20
geoscene/tasks/supportBufferParametersBufferParameters4.20
geoscene/tasks/supportClosestFacilityParametersClosestFacilityParameters4.20
geoscene/tasks/supportClosestFacilitySolveResultClosestFacilitySolveResult4.20
geoscene/tasks/supportColorRampColorRamp4.20
geoscene/tasks/supportDataFileDataFile4.20
geoscene/tasks/supportDataLayerDataLayer4.20
geoscene/tasks/supportDensifyParametersDensifyParameters4.20
geoscene/tasks/supportDirectionsFeatureSetDirectionsFeatureSet4.20
geoscene/tasks/supportDistanceParametersDistanceParameters4.20
geoscene/tasks/supportFeatureSetFeatureSet4.20
geoscene/tasks/supportFindParametersFindParameters4.20
geoscene/tasks/supportFindResultFindResult4.20
geoscene/tasks/supportGeneralizeParametersGeneralizeParameters4.20
geoscene/tasks/supportGPMessageGPMessage4.20
geoscene/tasks/supportIdentifyParametersIdentifyParameters4.20
geoscene/tasks/supportIdentifyResultIdentifyResult4.20
geoscene/tasks/supportImageIdentifyParametersImageIdentifyParameters4.20
geoscene/tasks/supportImageIdentifyResultImageIdentifyResult4.20
geoscene/tasks/supportImageHistogramParametersImageHistogramParameters4.20
geoscene/tasks/supportImageServiceIdentifyParametersImageServiceIdentifyParameters4.18
geoscene/tasks/supportImageServiceIdentifyResultImageServiceIdentifyResult4.18
geoscene/tasks/supportJobInfoJobInfo4.20
geoscene/tasks/supportLegendLayerLegendLayer4.20
geoscene/tasks/supportLengthsParametersLengthsParameters4.20
geoscene/tasks/supportLinearUnitLinearUnit4.20
geoscene/tasks/supportMultipartColorRampMultipartColorRamp4.20
geoscene/tasks/supportNAMessageNAMessage4.20
geoscene/tasks/supportOffsetParametersOffsetParameters4.20
geoscene/tasks/supportParameterValueParameterValue4.20
geoscene/tasks/supportPrintParametersPrintParameters4.20
geoscene/tasks/supportPrintTemplatePrintTemplate4.20
geoscene/tasks/supportProjectParametersProjectParameters4.20
geoscene/tasks/supportQueryQuery4.20
geoscene/tasks/supportRasterDataRasterData4.20
geoscene/tasks/supportRelationParametersRelationParameters4.20
geoscene/tasks/supportRelationshipQueryRelationshipQuery4.20
geoscene/tasks/supportRouteParametersRouteParameters4.20
geoscene/tasks/supportRouteResultRouteResult4.20
geoscene/tasks/supportServiceAreaParametersServiceAreaParameters4.20
geoscene/tasks/supportServiceAreaSolveResultServiceAreaSolveResult4.20
geoscene/tasks/supportStatisticDefinitionStatisticDefinition4.20
geoscene/tasks/supportTrimExtendParametersTrimExtendParameters4.20

4.23

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

类/属性/方法/事件备用选项弃用版本
TimeSlider.valuestimeExtent4.20
TimeSliderViewModel.valuestimeExtent4.20
PointDrawAction.coordinatesvertices4.19
Editor.layerInfos[].fieldConfiglayerInfos[].formTemplate.elements[]4.21
Editor.supportingWidgetDefaults.FeatureForm.fieldConfiglayerInfos[].formTemplate.elements[]4.21