@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
168 lines (166 loc) • 9.5 kB
TypeScript
import type SpatialReference from "../geometry/SpatialReference.js";
import type Layer from "./Layer.js";
import type ElevationInfo from "../symbols/support/ElevationInfo.js";
import type { MultiOriginJSONSupportMixin } from "../core/MultiOriginJSONSupport.js";
import type { APIKeyMixin, APIKeyMixinProperties } from "./mixins/APIKeyMixin.js";
import type { CustomParametersMixin, CustomParametersMixinProperties } from "./mixins/CustomParametersMixin.js";
import type { OperationalLayer, OperationalLayerProperties } from "./mixins/OperationalLayer.js";
import type { PortalLayer, PortalLayerProperties } from "./mixins/PortalLayer.js";
import type { ScaleRangeLayer, ScaleRangeLayerProperties } from "./mixins/ScaleRangeLayer.js";
import type { SpatialReferenceProperties } from "../geometry/SpatialReference.js";
import type { ElevationInfoProperties } from "../symbols/support/ElevationInfo.js";
import type { LayerProperties } from "./Layer.js";
/** @since 5.0 */
export interface GaussianSplatLayerProperties extends LayerProperties, APIKeyMixinProperties, CustomParametersMixinProperties, ScaleRangeLayerProperties, PortalLayerProperties, OperationalLayerProperties, Partial<Pick<GaussianSplatLayer, "url">> {
/**
* Specifies how the Gaussian Splatting scene is placed on the vertical axis (z). This property may only be used
* in a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). See the
* [ElevationInfo sample](https://developers.arcgis.com/javascript/latest/sample-code/scene-elevationinfo/) for an example of how this property
* may be used.
* > [!WARNING]
* >
* > This property only affects [GaussianSplatLayers](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/) when using the `absolute-height` mode.
*
* @since 5.0
*/
elevationInfo?: ElevationInfoProperties | null;
/**
* The spatial reference of the layer.
*
* @since 5.0
*/
spatialReference?: SpatialReferenceProperties;
/**
* The title of the layer used to identify it in places such as the [LayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/) widget.
*
* When loading a layer by service url, the title is derived from the service name.
* When the layer is loaded from a portal item, the title of the portal item will be used instead.
* Finally, if a layer is loaded as part of a webmap or a webscene, then the title of the layer as stored in the
* webmap/webscene will be used.
*
* @since 5.0
*/
title?: string | null;
}
/**
* * [Overview](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-GaussianSplatLayer.html#overview)
* * [Creating a GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-GaussianSplatLayer.html#creating-a-gaussiansplat-layer)
* * [Data Visualization](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-GaussianSplatLayer.html#data-visualization)
*
* <span id="overview"></span>
* ## Overview
*
* The GaussianSplatLayer is designed for visualizing highly realistic, complex geometry of built and natural environments in a
* [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
* It excels at rendering high-fidelity details, making it ideal for thin and intricate structures like powerlines, guard rails,
* and antennas in infrastructure workflows. It also captures transparency and reflections in human-made features, such as building
* windows or metal surfaces and can accurately represent vegetation and other natural features.
*
* Gaussian splatting is a technique in computer graphics that renders a 3D scene from millions of individual elements called Gaussian splats.
* They can be seen as fuzzy ellipsoids that are defined by their position, rotation, size, color, and transparency.
* Gaussian splats are optimized during a training process. When rendered together, Gaussian splats blend to form a smooth,
* photorealistic 3D representation.
*
* > [!WARNING]
* >
* > **Known Limitations**
* >
* > * Currently, Elevation Profile, Viewshed, Line of Sight, Slice and Volume Measurement are not supported.
* > * Gaussian splat layers do not cast or receive shadows.
* > * Gaussian splat layers are not guaranteed to always draw correctly in a local scene using WGS84 as spatial reference
* > (WKID 4326).
*
* <span id="creating-a-gaussiansplat-layer"></span>
* ## Creating a GaussianSplatLayer
* Gaussian splat data is generated by a highly automated process from large sets of overlapping imagery and/or from lidar surveys.
* You can use [ArcGIS Reality Studio](https://doc.esri.com/en/arcgis-reality-studio/latest/),
* [ArcGIS Drone2Map](https://doc.arcgis.com/en/drone2map/latest/get-started/what-is-drone2map.htm), and
* [ArcGIS Reality for ArcGIS Pro](https://pro.arcgis.com/en/pro-app/latest/help/data/imagery/introduction-to-arcgis-reality-extension.htm)
* to create a Gaussian splat dataset.
*
* From ArcGIS Pro, you can author a Gaussian splat layer and share it to ArcGIS Online or ArcGIS Enterprise 12.1 or newer.
* In addition, you can upload a 3TZ file (3D Tiles Package).
*
* The Scene Service is identified by the [url](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/#url) or [portalItem](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/#portalItem)
* property and can be used to create an instance of a Gaussian splat layer:
*
* ```js
* let gaussianSplatLayer = new GaussianSplatLayer({
* url: "https://tiles.arcgis.com/tiles/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Portcoast_industrial/3DTilesServer/tileset.json"
* });
* ```
*
* ```js
* let gaussianSplatLayer = new GaussianSplatLayer({
* portalItem: {
* id: "01596d71a5ce40ec8a6f21baad6e5b6f"
* }
* });
* ```
*
* <span id="data-visualization"></span>
* ## Data Visualization
* Besides human-made structures, natural objects such as vegetation can be visualized with high fidelity. This includes details like tree leaves,
* enabling classification of tree species or other types of vegetation.
*
* A Gaussian splat layer is a 3D layer that can be visualized in either a local or global scene. For example, if you create a Gaussian splat layer in a
* projected coordinate system, you can visualize it in a local scene using the same projected coordinate system.
* Since Gaussian splat layers support the
* [ESRI_CRS](https://github.com/Esri/3D-tiles-layer/blob/main/ESRI_CRS/Esri_crs_extension.md) extension, you can also visualize the same Gaussian splat layer
* in a global scene that uses the geodetic coordinate system WGS84.
*
* You can visualize and explore other layers such as feature, imagery, and other 3D layers together with the Gaussian splat layer in your scene.
*
* @since 5.0
* @see [Sample - GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/sample-code/layers-gaussiansplatlayer/)
* @see [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/)
* @see [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/)
*/
export default class GaussianSplatLayer extends GaussianSplatLayerSuperclass {
/** @since 5.0 */
constructor(properties?: GaussianSplatLayerProperties);
/**
* Specifies how the Gaussian Splatting scene is placed on the vertical axis (z). This property may only be used
* in a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). See the
* [ElevationInfo sample](https://developers.arcgis.com/javascript/latest/sample-code/scene-elevationinfo/) for an example of how this property
* may be used.
* > [!WARNING]
* >
* > This property only affects [GaussianSplatLayers](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/) when using the `absolute-height` mode.
*
* @since 5.0
*/
get elevationInfo(): ElevationInfo | null | undefined;
set elevationInfo(value: ElevationInfoProperties | null | undefined);
/**
* The spatial reference of the layer.
*
* @since 5.0
*/
get spatialReference(): SpatialReference;
set spatialReference(value: SpatialReferenceProperties);
/**
* The title of the layer used to identify it in places such as the [LayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/) widget.
*
* When loading a layer by service url, the title is derived from the service name.
* When the layer is loaded from a portal item, the title of the portal item will be used instead.
* Finally, if a layer is loaded as part of a webmap or a webscene, then the title of the layer as stored in the
* webmap/webscene will be used.
*
* @since 5.0
*/
accessor title: string | null | undefined;
/**
* The layer type provides a convenient way to check the type of the layer without the need to import specific layer modules.
*
* @since 5.0
*/
get type(): "gaussian-splat";
/**
* The URL of the root json file.
*
* @since 5.0
*/
accessor url: string | null | undefined;
}
declare const GaussianSplatLayerSuperclass: typeof Layer & typeof APIKeyMixin & typeof CustomParametersMixin & typeof MultiOriginJSONSupportMixin & typeof ScaleRangeLayer & typeof PortalLayer & typeof OperationalLayer