UNPKG

@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
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; }