@vertigis/viewer-spec
Version:
VertiGIS Viewer Specification
68 lines (67 loc) • 2.22 kB
TypeScript
import type { LayerExtension } from "@vertigis/arcgis-extensions/mapping/LayerExtension";
import type { SublayerExtension } from "@vertigis/arcgis-extensions/mapping/SublayerExtension";
/**
* Well known connection points for topological editing.
*/
export interface TopologyConnections {
/**
* Enable connections to an edge, defaults to true.
*/
edge?: boolean;
/**
* Enable connections to vertices, defaults to allow all connections.
*/
vertices?: boolean;
}
/**
* Configuration for topology destinations.
*/
export interface TopologyDestinationProperties {
/**
* The destination layer or sublayer extension.
*/
destination: LayerExtension | SublayerExtension;
}
/**
* Maps topology source layers to destination layers to be considered.
*/
export interface TopologySourceMapping {
/**
* Types of topology connections to be considered for this source.
*/
connections?: TopologyConnections;
/**
* The topology destinations, if not provided all destinations will be
* considered.
*/
destinations?: TopologyDestinationProperties[];
/**
* The topology source. If omitted the configuration will be applied to all
* existing sources.
*/
source?: LayerExtension | SublayerExtension;
}
/**
* Configuration for topological editing and sketching.
*/
export interface TopologyProperties {
/**
* Configuration for topology sources.
*/
sourceMappings?: TopologySourceMapping[];
/**
* A multiplier of the distance tolerance associated with the map's spatial
* reference, which will be used to calculate a 'coincident distance'
* threshold. Geometries that fall within the coincident distance of each
* other will qualify as 'coincident' and will be affected by editing
* operations while topological editing is enabled.
*
* Eg. Maps using the Web Mercator spatial reference (WKID 102100) have a
* tolerance distance of 0.0001 meters; a coincidentRadius multiplier value
* of 20 means geometries within 0.002 meters of each other would be
* considered 'coincident.'.
*
* Defaults to 20.
*/
coincidentRadius?: number;
}