| 漏洞 ID 编号 |
BUG-000139221 |
| 已提交 | April 21, 2021 |
| 上次修改时间 | June 5, 2024 |
| 适用范围 | ArcGIS AppStudio |
| 找到的版本 | 5.0 |
| 操作系统 | Windows OS |
| 操作系统版本 | 10.0 64 Bit |
| 状态 | Known Limit
经开发团队审核,已确定此问题与不受 Esri 控制的软件的已知限制有关。 问题的“其他信息”部分可能包含进一步说明。
|
附加信息
The Projection Engine used by ArcGIS Runtime and other Esri products is frequently updated to improve its operation. A recent change is to deprecate an internal hardcoded choice of default transformations (which was difficult to maintain) in favor of an algorithm to choose the default transformation prioritizing coverage area of from and to spatial references, with accuracy as a tiebreaker where the coverage area is different. For MGI, covering Austria and former Yugoslavia, this results in the choice of MGI_To_WGS_1984 (1306) which covers a larger proportion of the area than the previous default of MGI_To_WGS_1984_3 (1618). Other available transformations have smaller coverage areas.
Where the default transformation selected by this algorithm is not acceptable, change the default transformation used for a specific pair of spatial references by installing an overrides file and setting the projection engine location so that the file is used by ArcGIS Runtime. This process is described in https://developers.arcgis.com/qt/spatial-and-data-analysis/spatial-references/#customize-default-transformations. The following file content changes the default transformation for this specific case to the required MGI_To_WGS_1984_3 (1618):
{ "geogtran" : [
[ 4312, 4326, 1618, 0, 0, 0 ],
] }
This default is used internally wherever geometries are transformed between these specific spatial references (excepting cases where particular transformation is specified, by calling GeometryEngine.project(Geometry, SpatialReference, DatumTransformation)).
解决办法
The issue is not reproducible if the two conditions are met:
- The projection engine transformation files are downloaded on disk and are explicitly set in the app code - e.g. `Component.onCompleted: TransformationCatalog.projectionEngineDirectory = "file:///C:/Users/<username>/ArcGIS/Runtime/Data/PEDataRuntime"`
- a gtdefaults_overrides.json file is created and placed in the PEDataRuntime location, with the below contents to specify the transformation to use:
{ "geogtran" : [
[ 4312, 4326, 1618, 0, 0, 0 ],
] }
重现步骤