基本信息
以下是所在類或對象的基本信息。
AMD:
require(["esri/WebScene"], (WebScene) => { /* code goes here */ });
ESM:
import WebScene from "@arcgis/core/WebScene";
類:
esri/WebScene
自從:用於 JavaScript 4.0 的 ArcGIS API
用法說明
Web 場景是跨 ArcGIS 進行 3D 映射的核心元素。它定義了場景的內容、樣式、環境和幻燈片,並且可以在多個ArcGIS Web 和桌麵應用程序之間共享。可以使用 Scene Viewer 在 ArcGIS Pro 和 ArcGIS Online 中創建、發布和使用 Web 場景。 Web 場景保存為 JSON 文檔,ArcGIS API for JavaScript 通過WebScene 類可以輕鬆創建引人注目的 3D 應用程序。 JSON 文檔是根據 web scene specification 編寫的。
盡管您可以輕鬆創建自己的場景,但仍有數以千計的公開可用的web scenes in ArcGIS Online 可供您開始使用 API。您可以對這些場景進行修改或添加新內容。
要將 WebScene 加載到 SceneView 中,您隻需通過此類的 PortalItem 屬性引用 ArcGIS Online 中的 Web 場景項的 ID。
const scene = new WebScene({
portalItem: { // autocasts as new PortalItem()
id: "affa021c51944b5694132b2d61fe1057" // ID of the WebScene on arcgis.com
}
});
要從 on-premise 門戶加載 WebScene,請在 esriConfig.portalurl 中設置門戶 URL。
esriConfig.portalUrl = "https://myHostName.esri.com/arcgis";
const scene = new WebScene({
portalItem: { // autocasts as new PortalItem()
id: "0614ea1f9dd043e9ba157b9c20d3c538" // ID of the WebScene on the on-premise portal
}
});
然後,您必須在 SceneView 的 map 屬性中引用 WebScene 實例。
const view = new SceneView({
map: scene, // The WebScene instance created above
container: "viewDiv"
});
這將開始將所有圖層和場景選項加載到 3D SceneView 中。可以調用 WebScene 實例上的 when() 方法來執行隻能在加載 WebScene 後運行的進程。
scene.when(function() {
// All layers and the basemap have been created
});
view.when(function() {
// All layer and basemap resources have been loaded and are ready to be displayed
});
WebScene 定義場景的內容以及場景在應用程序中加載時的外觀。使用此類時,您可能會與 Web 場景的幾個常見屬性進行交互:
- 圖層:定義 Web 場景的內容和樣式,以及彈出窗口、標簽、圖例和其他設置。
- 底圖:定義 Web 場景的底圖圖層。
- 地麵:定義 web 場景的高程圖層。
- 演示文稿:包含網絡場景幻燈片。
- InitialViewProperties
- Environment :配置場景的照明、陰影和氛圍。
- Viewpoint :配置初始視點。
- ViewingMode :定義網絡場景是全局的還是本地的。
有關 Web 場景屬性的更多信息,請參閱web scene specification。
Web 場景有兩種類型:global
或 local
。全局場景將地球渲染為球體,而局部場景將地球渲染為平麵。可以使用 WebMercator、WGS84、CGCS2000、Mars_2000_(Sphere)、GCS_Mars_2000 和 GCS_Moon_2000 創建全局 web 場景。可以使用 WGS84、CGCS2000 或任何投影坐標係創建本地 web 場景。閱讀 ArcGIS 在線幫助以了解有關 choosing global or local scenes 的更多信息。
幻燈片存儲場景可視化狀態的快照,稍後可以將其重新應用到場景。幻燈片包含視點、圖層可見性、底圖和環境(以及標題和縮略圖)的屬性,以便 3D 應用程序的用戶可以輕鬆導航場景並準確地重新創建該場景的存儲視圖。
可以使用saveAs()或save()將網絡場景保存到ArcGIS Online或Portal。定義門戶,加載後保存 Web 場景。
const portal = new Portal({
url: "https://myportal.arcgis.com/", // the url of the portal
authMode: "immediate" // user authenticates by signing in when the Portal is loaded
});
// once the portal is loaded save the web scene to the portal as a new web scene
portal.load().then(function() {
webscene.saveAs({
title: "My Scene",
portal: portal
})
.then(function() {
console.log("Scene was saved");
})
.catch(function(err) {
console.log(err);
});
})
請務必注意,GraphicsLayer、ImageryLayer 和 StreamLayer 不能保存到 Web 場景中。通過將緩存的圖像服務聲明為 TileLayer ,可以將其保存到 Web 場景中。 OpenStreetMapLayer 可以保存為 baseLayer 。有關可保存在 Web 場景中的圖層類型的詳細信息,請參閱web scene specification。
相關用法
- JavaScript ArcGIS WebScene.loadAll用法及代碼示例
- JavaScript ArcGIS WebScene.ground用法及代碼示例
- JavaScript ArcGIS WebScene.layers用法及代碼示例
- JavaScript ArcGIS WebScene.load用法及代碼示例
- JavaScript ArcGIS WebScene.saveAs用法及代碼示例
- JavaScript ArcGIS WebScene.destroy用法及代碼示例
- JavaScript ArcGIS WebScene.tables用法及代碼示例
- JavaScript ArcGIS WebScene.addMany用法及代碼示例
- JavaScript ArcGIS WebScene.thumbnailUrl用法及代碼示例
- JavaScript ArcGIS WebScene.fromJSON用法及代碼示例
- JavaScript ArcGIS WebScene.basemap用法及代碼示例
- JavaScript ArcGIS WebScene.save用法及代碼示例
- JavaScript ArcGIS WebScene.when用法及代碼示例
- JavaScript ArcGIS WebScene.allTables用法及代碼示例
- JavaScript ArcGIS WebScene.add用法及代碼示例
- JavaScript ArcGIS WebScene.allLayers用法及代碼示例
- JavaScript ArcGIS WebStyleSymbol.fetchSymbol用法及代碼示例
- JavaScript ArcGIS WebStyleSymbol用法及代碼示例
- JavaScript ArcGIS WebStyleSymbol.fetchCIMSymbol用法及代碼示例
- JavaScript ArcGIS WebStyleSymbol.clone用法及代碼示例
- JavaScript ArcGIS WebTileLayer layerview-create-error事件用法及代碼示例
- JavaScript ArcGIS WebTileLayer.maxScale用法及代碼示例
- JavaScript ArcGIS WebMap.saveAs用法及代碼示例
- JavaScript ArcGIS WebMap.save用法及代碼示例
- JavaScript ArcGIS WebMap.destroy用法及代碼示例
注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 WebScene。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。