-
spatialReference
SpatialReference
autocast
视图的空间参考。这表示用于在Map中定位地理特征的投影坐标系或地理坐标系。从版本 4.23 开始,您可以在 MapView 初始化后通过直接更改此属性或通过更改 BasemapGallery 或 BasemapToggle 小部件中的底图来更改 MapView 的空间参考。将spatialReferenceLocked属性设置为
true
以防止用户在运行时更改视图的空间参考。在更改空间参考之前,请通过调用 projection.isLoaded() 检查 projection engine 是否已加载。如果尚未加载,则调用projection.load()方法。如果未加载投影引擎,视图的中心将默认为视图的新空间参考中的
[0, 0]
,并且将引发控制台错误。注意
-
不显示与视图的空间参考不兼容的LayerViews。在这种情况下,图层视图的 suspended 属性是
true
并且 spatialReferenceSupported 属性是false
。 -
设置视图的空间参考时,中心、范围或viewpoint.targetGeometry属性将投影到新的空间参考。调整比例和旋转属性以使Map内容在屏幕上保持相同的大小和方向。
-
为确保TileLayers 和VectorTileLayers 正确显示在basemap 中,必须将MapView 的空间参考设置与其tileInfo's 空间参考相匹配。
-
不支持使用 imageCoordinateSystem 切换空间参考。
默认值:null
例子:
// check if the projection engine is loaded if (!projection.isLoaded()) { // load the projection engine if it is not loaded projection.load().then(() => { // change the spatial reference of the view to equal earth projection view.spatialReference = new SpatialReference({ wkid: 54035 //equal earth projection }); }); } else { // the projection engine is already loaded. // change the spatial reference of the view to equal earth projection view.spatialReference = new SpatialReference({ wkid: 54035 //equal earth projection }); }
const basemap = await changeBasemap(); const spatialReference = await findSpatialReference(basemap); // check if basemap has the same spatial reference as the view if they are not equal // then check if the projection engine is loaded. load the projection engine if it is not loaded. // If loaded, then simply change view.spatialReference to match the basemap spatialReference if (spatialReference && !view.spatialReference.equals(spatialReference)) { if (!projection.isLoaded()) { // load the projection engine if it is not loaded await projection.load(); } view.spatialReference = spatialReference; } // change the basemap map.basemap = basemap; async function changeBasemap() { let basemap; if (map.basemap.title === "OpenStreetMap Vector Basemap (Blueprint - WGS84)"){ basemap = new Basemap({ portalItem: { // Spilhaus - one ocean basemap id: "5639ccf22d4c4830ab815c4f9c9319bb" } }); } else { basemap = osm84; } return basemap; } async function findSpatialReference(basemap) { await basemap.load(); if (basemap.spatialReference) { return basemap.spatialReference; } const layer = basemap.baseLayers.at(0); if (!layer) { return null; } await layer.load(); return layer.spatialReference; }
-
基本信息
以下是所在类或对象的基本信息。
AMD:
require(["esri/views/MapView"], (MapView) => { /* code goes here */ });
ESM:
import MapView from "@arcgis/core/views/MapView";
类:
esri/views/MapView
自从:用于 JavaScript 4.0 的 ArcGIS API
用法说明
MapView.spatialReference
函数(或属性)的定义如下:
相关用法
- JavaScript ArcGIS MapView.scale用法及代码示例
- JavaScript ArcGIS MapView.constraints用法及代码示例
- JavaScript ArcGIS MapView.takeScreenshot用法及代码示例
- JavaScript ArcGIS MapView.when用法及代码示例
- JavaScript ArcGIS MapView.highlightOptions用法及代码示例
- JavaScript ArcGIS MapView.extent用法及代码示例
- JavaScript ArcGIS MapView.whenLayerView用法及代码示例
- JavaScript ArcGIS MapView.toScreen用法及代码示例
- JavaScript ArcGIS MapView.navigation用法及代码示例
- JavaScript ArcGIS MapView.animation用法及代码示例
- JavaScript ArcGIS MapView.widthBreakpoint用法及代码示例
- JavaScript ArcGIS MapView.input用法及代码示例
- JavaScript ArcGIS MapView.fatalError用法及代码示例
- JavaScript ArcGIS MapView.hitTest用法及代码示例
- JavaScript ArcGIS MapView.destroy用法及代码示例
- JavaScript ArcGIS MapView.background用法及代码示例
- JavaScript ArcGIS MapView.breakpoints用法及代码示例
- JavaScript ArcGIS MapView.tryFatalErrorRecovery用法及代码示例
- JavaScript ArcGIS MapView.rotation用法及代码示例
- JavaScript ArcGIS MapView.center用法及代码示例
- JavaScript ArcGIS MapView.on用法及代码示例
- JavaScript ArcGIS MapView.container用法及代码示例
- JavaScript ArcGIS MapView.graphics用法及代码示例
- JavaScript ArcGIS MapView.goTo用法及代码示例
- JavaScript ArcGIS MapView.popup用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 MapView.spatialReference。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。