@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
91 lines (89 loc) • 4.31 kB
TypeScript
import type SpatialReference from "../../geometry/SpatialReference.js";
import type { SceneServiceVersion } from "../support/types.js";
import type { SpatialReferenceProperties } from "../../geometry/SpatialReference.js";
export interface SceneServiceProperties extends Partial<Pick<SceneService, "copyright" | "layerId" | "url">> {
/** The spatial reference of the layer. */
spatialReference?: SpatialReferenceProperties;
}
/** Mixin for layers using a scene service. */
export abstract class SceneService {
constructor(...args: any[]);
/** The copyright text as defined by the scene service. */
accessor copyright: string | null | undefined;
/**
* The layer ID, or layer index, of a Scene Service layer. This is particularly useful when
* loading a single layer with the [portalItem](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/PortalLayer/#portalItem) property from a service containing
* multiple layers. You can specify this value in one of two scenarios:
*
* * When loading the layer via the [portalItem](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/PortalLayer/#portalItem) property.
* * When pointing the layer [url](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/SceneService/#url) directly to the Scene Service.
*
* If a layerId is not specified in either of the above scenarios, then the first layer
* in the service (`layerId = 0`) is selected.
*
* @example
* // while these examples use a SceneLayer, the same pattern can be
* // used for other layers that may be loaded from portalItem ids
*
* // loads the third layer in the given Portal Item
* let layer = new SceneLayer({
* portalItem: {
* id: "73df987984b24094b848d580eb83b0fb"
* },
* layerId: 2
* });
* @example
* // If not specified, the first layer (layerId: 0) will be returned
* let layer = new SceneLayer({
* portalItem: {
* id: "73df987984b24094b848d580eb83b0fb"
* }
* });
* @example
* // Can also be used if URL points to service and not layer
* let layer = new SceneLayer({
* url: "https://scenesampleserverdev.arcgis.com/arcgis/rest/services/Hosted/DevA_Trees/SceneServer",
* layerId: 0 // Notice that the url doesn't end with /2
* });
* @example
* // This code returns the same layer as the previous snippet
* let layer = new SceneLayer({
* url: "https://scenesampleserverdev.arcgis.com/arcgis/rest/services/Hosted/DevA_Trees/SceneServer/layers/0",
* // The layer id is specified in the URL
* });
*/
accessor layerId: number;
/** The spatial reference of the layer. */
get spatialReference(): SpatialReference;
set spatialReference(value: SpatialReferenceProperties);
/**
* The URL of the REST endpoint of the layer or scene service. The URL may either point to a
* resource on ArcGIS Enterprise or ArcGIS Online.
*
* The layer may be specified using the [layerId](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/SceneService/#layerId) property when the url points directly to a service and not a specific layer.
* If [layerId](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/SceneService/#layerId) is not specified, then it will default to the first layer in the service.
*
* @example
* // Layer from Scene Service on ArcGIS Server
* let sceneLayer = new SceneLayer({
* url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Paris_3D_Local_WSL2/SceneServer/layers/0"
* });
* @example
* // Can also be used if URL points to service and not layer
* let layer = new SceneLayer({
* // Notice that the url doesn't end with /0
* url: "https://scenesampleserverdev.arcgis.com/arcgis/rest/services/Hosted/DevA_Trees/SceneServer",
* layerId: 0
* });
*/
accessor url: string | null | undefined;
/**
* The version of the scene service specification used for this service.
*
* @see [github.com/Esri/i3s-spec](https://github.com/Esri/i3s-spec)
* @example
* // Prints the version to the console - e.g. 1.4, 1.5, etc.
* console.log(layer.version.versionString);
*/
get version(): SceneServiceVersion;
}