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