-
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。