Glossary and File Map
This is the chapter's reference sheet. The first table is Esri's vocabulary with the meaning it has here, which is sometimes narrower than the SDK documentation; the second is our own vocabulary; then the constants, the environment, and the file map.
Esri terms, as used here
| Term | In this codebase |
|---|---|
| AGOL / portal | ArcGIS Online, the SaaS portal our organisation (X84q166Srnyl4JMV) lives in |
| Portal item | Anything stored in the portal with an id: the WebMap, a vector tile style, a layer reference |
| WebMap | The one portal item loaded as the map; carries basemap, operational layers, symbology, groups |
| Operational layer | Any WebMap layer that is not the basemap; a hundred-odd of them, toggled from the Layers Menu |
| FeatureServer / FeatureLayer | A hosted vector service and the SDK layer that reads it; also used client-side with source: [] |
| StreamServer / StreamLayer | A Velocity push service over WebSocket and its layer; holds only features received on the current connection |
| Velocity | ArcGIS Velocity, the real-time service that publishes the camera streams and their persisted outputs |
| Event Hubs | esri_cameras and esri_velocity: the hubs the backend publishes to, which Velocity turns into streams and AI hits |
| Layer view | The view-side object that draws a layer; owns filter, highlight(), queryFeatures on drawn data |
definitionExpression | A server-evaluated SQL where clause on a layer; owned here by the type and spotlight filters |
layerView.filter | A client-evaluated filter on the layer view; owned here by the area scope (and, for streams, composed by one writer) |
| Renderer | The rule mapping attributes to symbols: UniqueValueRenderer for arrows and LOS, SimpleRenderer for FOV |
| Visual variable | Rotation, size or opacity driven by a field or an Arcade expression, evaluated on the GPU |
| Arcade | Esri's expression language; used for arrow opacity, cluster labels and the cluster filter |
| CIM symbol | Cartographic Information Model symbol: the multi-stroke LOS line and the animated AI picture marker |
PictureMarkerSymbol | An image marker; our arrows are generated SVG data URLs in this form |
| Feature reduction | Clustering (FeatureReductionCluster) on the camera service; opt-in |
applyEdits | The batch edit call on a feature layer: add, update, delete features in one request |
outFields | Which attributes a query or hit returns; ['*'] on the camera service so hits carry cId |
| ObjectID | A feature's unique id; allocated by us on client layers, by the server on hosted ones |
hitTest | Screen point to graphics; always called with an include list on hover-rate events |
reactiveUtils | watch / when / whenOnce on view properties; when(stationary) is the preferred zoom hook |
| IdentityManager | The SDK's credential registry; one token registered by URL prefix, challenges for unknown servers refused |
| Web Mercator / WGS84 | wkid 102100 (or 3857) for the view and metres; wkid 4326 for lat/lon. Client layers are WGS84 |
| Scale vs zoom | Scale is continuous and persisted; zoom is a whole level. A "zoom" over 24 is a scale in disguise |
| Geodesic | Measured on the ellipsoid; the alert ring and area buffer are geodesic or they are wrong |
| Map components | @arcgis/map-components: <arcgis-map>, <arcgis-legend>, <arcgis-distance-measurement-2d> |
Our terms
| Term | Meaning |
|---|---|
| Arrows | The client feature layer of camera headings; one feature per camera, keyed on cId |
| FOV / LOS | Field-of-view wedge and line-of-sight line; drawn for hovered, selected and recently-moved cameras |
| Cursor LOS | The black line following the cursor on a camera image; one graphic on a graphics layer |
| Persistent set | Recently-moved cameras whose LOS stays on the map; also unioned into the proboscis beam filter |
| Legacy camera service | The hosted camera feature layer (LEGACY_CAMERA_LAYER_TITLES); parked at startup, cameras come from Velocity |
| Client layers | Cursor LOS, the one layer created in code; listed in CLIENT_LAYERS |
| Parking / parked | A toggled-off WebMap layer removed from its collection by the catalog, so it never loads |
| Catalog | The snapshot of the WebMap tree that remembers each layer's parent and position |
| Locations / Viewshed / Proboscis / Camera Feed | The four Velocity kinds: points, FOV polygon, LOS beam, live point feed |
| Companion | A persisted feature output of the same environment drawn beneath a claimed stream as its warm-start |
| Handoff | Excluding from a companion each camera its stream has delivered a drawable event for |
| Beam set | The camera ids whose viewshed/proboscis may draw; deviceId IN (…) or 1=0 |
| Pick mode | A mode that owns the next map click (area pick, Get Coordinates); disarms on Escape and unmount |
| Slot | A placeholder div the singleton map overlay tracks (desktop-map, mobile-drawer-map, mobile-location-map) |
| On-demand module | arcgisOnDemandModule.ts, the single lazy boundary for non-map features that need the SDK |
Constants that tune the integration
| Constant | Value | File |
|---|---|---|
MASTER_MAP_PORTAL_ITEM_ID | from env, default db68c797… | data/constants.ts |
BASIC_TOPO_MAP_PORTAL_ITEM_ID | d5e02a0c… (alert area map) | data/constants.ts |
LEGACY_CAMERA_LAYER_TITLES | ['ALERTCalifornia Cameras'] | data/constants.ts |
ARCGIS_AUTHENTICATED_SERVER_URLS | 6 prefixes | data/constants.ts |
CLIENT_LAYERS / LAYERS_TO_IGNORE | 1 title / + topo and imagery | data/constants.ts |
VELOCITY_LAYER_MATCHERS | service-name and title regexes | data/constants.ts |
LOS_LENGTH | 40,233.6 m (25 mi) | data/constants.ts |
AI_DETECTION_PULSE_DURATION_MS | 10,000 | data/constants.ts |
NORTH_AMERICA_MIN_SCALE / MAX_ZOOM_IN_SCALE / PUBLIC_MAX_ZOOM_SCALE | 70,000,000 / 1,000 / 9,027.98 | FeatureMap.tsx |
| Token lifetime / server refresh buffer / client refresh buffer | 720 min / 10 min / 5 min | lib/server/arcgisToken.ts, queries/useArcGISToken.ts |
Environment: ARCGIS_CLIENT_ID, ARCGIS_CLIENT_SECRET (local), Key Vault ESRIClientId,
ESRISecret (production), NEXT_PUBLIC_MASTER_MAP_PORTAL_ITEM_ID.
File map
| Concern | File |
|---|---|
| Map orchestration, boot, constraints | components/organisms/TileView/FeatureMap/FeatureMap.tsx |
| Singleton overlay and slots | context/MapPortalContext.tsx |
| Token: mint and cache / route / query / registration | lib/server/arcgisToken.ts / pages/api/arcgis/token.ts / queries/useArcGISToken.ts / hooks/useArcGISAuth.ts |
| WebMap prepare and catalog | hooks/featureMap/usePreparedWebMap.ts, util/map/webMapLayerCatalog.ts |
| Portal layers, menu tree, visibility | hooks/featureMap/useFeatureMapAGOLLayers.ts, hooks/usePageUpdates.ts |
| Client layers, filters, source switch, FOV/LOS edits | hooks/featureMap/useFeatureMapCameraLayers.ts |
| Renderers, symbols, arrow state | util/map/featureMap/layerFactories.ts |
| FOV and LOS geometry | util/map/featureMap/geometryBuilders.ts |
| PTZ diff and geometry extraction | util/map/featureMap/cameraChangeDetector.ts |
| Real-time tick | hooks/featureMap/useFeatureMapPolling.ts |
| Hover and tap / selection / cursor line | useFeatureMapHover.ts / useFeatureMapSelection.ts / useFeatureMapCursorTracking.ts |
| Extent query and persistence | hooks/featureMap/useFeatureMapExtent.ts |
| Velocity discovery and where composition | util/map/featureMap/velocityLayers.ts |
| Source state | stores/mapLayerSourceStore.ts |
| Area scope engine / geometry / boundaries | useFeatureMapAreaFilter.ts / areaFilterGeometry.ts / areaBoundaryLayers.ts |
| Pick modes | useAreaMapPick.ts, useCoordinateMapPick.ts, useAreaFilterPopupAction.ts |
| Alert pin, ring, capture | useFeatureMapPolygons.ts, util/map/captureAlertMapImage.ts, util/map/alertMapGeometry.ts |
| On-demand map features | components/organisms/ArcGISOnDemand/, LocateOnMap/SightingsMapLayer.tsx, W3WMap/W3WMapLayer.tsx, PeakFinderCompanion/CompanionMapMarks.tsx |
| Map stores | stores/mapStore.ts, mapCameraInteractiveStore.ts, layerVisibilityStore.ts, layerLoadingStore.ts, cameraAreaFilterStore.ts, mapCoordinatePickStore.ts |
| Types | types/featureMapTypes.ts, models/Map/LayerModel.ts, arcgis-map-components.d.ts |
Related lessons elsewhere
The Features → Feature Map lessons teach the map from the operator's side with live playgrounds for the arrow state and the PTZ diff; Map Action Buttons covers the FAB tray and the Layers Menu UI; the deep dives Why FeatureMap, Layers That Load When Asked and Two Sources, One Map hold the measurements and the exhaustive Velocity reference. This chapter is the connective tissue between them.