UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

84 lines (82 loc) 4.68 kB
import type { JSONSupport } from "../../../core/JSONSupport.js"; export interface NetworkElementProperties extends Partial<Pick<NetworkElement, "assetGroupCode" | "assetTypeCode" | "globalId" | "networkSourceId" | "objectId" | "positionFrom" | "positionTo" | "terminalId">> {} /** * The network element is a representation of how the network topology defines its graph. The network topology (or index) work with network elements and thats how the trace traverses those elements. * This class contains basic properties as seen in the network topology. For performance reasons, many utility network functions return network elements and not "full" features. * One feature can have many network elements. * * An example is a tri-state transformer with 3 terminals with High side (H) and two Low sides (X1, X2). The feature globalId could be `g` but it is composed of three network elements, g-H, g-X1 and g-X2. * ```js * H * * / \ * * X1 X2 * ``` * It is worth mentioning that elements in the network topology also have an elementId which is purely internal to the network and not exposed externally. Those elementIds are then converted to matching [objectId](https://developers.arcgis.com/javascript/latest/references/core/rest/networks/support/NetworkElement/#objectId)/[globalId](https://developers.arcgis.com/javascript/latest/references/core/rest/networks/support/NetworkElement/#globalId)`. * * @since 4.20 * @see [trace](https://developers.arcgis.com/javascript/latest/references/core/rest/networks/trace/) */ export default class NetworkElement extends JSONSupport { constructor(properties?: NetworkElementProperties); /** The asset group code that this network element represents. */ accessor assetGroupCode: number; /** The asset type code discriminator this network element represents. */ accessor assetTypeCode: number; /** The globalId of the feature the network element belongs to. */ accessor globalId: string; /** The network source Id of the feature the network element belongs to. Note that this is different from [Network.layerId](https://developers.arcgis.com/javascript/latest/references/core/networks/Network/#layerId) and you need to use [Network.getLayerIdBySourceId()](https://developers.arcgis.com/javascript/latest/references/core/networks/Network/#getLayerIdBySourceId) to get the `layerId`. */ accessor networkSourceId: number; /** The objectId of the feature the network element belongs to. */ accessor objectId: number; /** * Applicable to edge elements, represents a double value (0 to 1) where this edge element starts. * * @example * Line feature with objectId 100 with 2 midspan junctions (j1,j2). The line feature has 3 edge network elements * F-j1, j1-j2 and j2-T. * * OID=100 * F------j1------j2------T * * F-j1 (objectId=100, positionFrom=0, positionTo=0.33) * j1-j2 (objectId=100, positionFrom=0.33, positionTo=0.66) * j2-T (objectId=100, positionFrom=0.66, positionTo=1) */ accessor positionFrom: number; /** * Applicable to edge elements, represents a double value (0 to 1) where this edge element ends. * * @example * Line feature with objectId 100 with 2 midspan junctions (j1,j2). The line feature has 3 edge network elements * F-j1, j1-j2 and j2-T. * * OID=100 * F------j1------j2------T * * F-j1 (objectId=100, positionFrom=0, positionTo=0.33) * j1-j2 (objectId=100, positionFrom=0.33, positionTo=0.66) * j2-T (objectId=100, positionFrom=0.66, positionTo=1) */ accessor positionTo: number | null | undefined; /** * The terminal id defined at the network element. * The telecom domain network does not use terminals, so [TelecomNetworkElement](https://developers.arcgis.com/javascript/latest/references/core/rest/networks/support/TelecomNetworkElement/) always has a null `terminalId`. * * @see [Terminal](https://developers.arcgis.com/javascript/latest/references/core/networks/support/Terminal/) */ accessor terminalId: number | null | undefined; /** * The type of the network element. * This is always `networkElement` unless the object is a * [TelecomNetworkElement](https://developers.arcgis.com/javascript/latest/references/core/rest/networks/support/TelecomNetworkElement/) in a telecom domain network. * * > [!WARNING] * > * > Type `telecomNetworkElement` is reserved for telecom domain networks. * * @default "networkElement" */ get type(): "networkElement" | "telecomNetworkElement"; }