🚧 These docs are a work in progress — content is incomplete and may change without notice.
Skip to content

Concepts ​

Terms used throughout the Control Measures, TacticalDraw, and Map sheets guides.

Core terms ​

Control measure. A tactical military graphic defined by MIL-STD-2525 or APP-6, such as Block, Ambush, Fortified Area, or Attack-by-Fire. See the catalog for the complete list.

Graphic. One persisted, selectable tactical object and its derived render. A graphic may be a control measure, generic graphic, point symbol, or Image.

Kind. The string that selects a control-measure type, such as "block" or "phase-line". The kind determines the points, options, text fields, draw rule, and generator. The catalog lists every kind.

Render. The GeoJSON FeatureCollection produced by renderControlMeasure. A graphic can contain several features—for example, an arrow shaft and head. Stable feature IDs let you match parts after an edit.

Snapshot. A { graphic, render } pair captured at one point in time. draw(), edit(), and change listeners return snapshots. Because graphic is a defensive copy, you can safely keep it after the session ends.

Point symbol. A MIL-STD-2525 or APP-6 unit symbol at one position. It is a graphic, but not a control measure, and uses the same TacticalDraw lifecycle. Its renderer is optional; see Optional point symbols.

Image. A host-resource-backed graphic centered at one geographic position. It carries width, rotation, opacity, and immutable intrinsic dimensions while the host owns acquisition and storage. See Host-backed Images.

Text amplifier. A doctrinal free-text field on a graphic, such as the unique designation (T) or a date-time group (W). Stored in textAmplifiers and keyed by field code or alias. See Labels and text amplifiers.

Label placement. A user adjustment to one label's position or rotation, stored in amplifierPlacements. Without one, labels follow doctrine.

Points and validity ​

Draw rule. The logic that turns user-placed points into a control measure, including derived points and reshape behavior. For example, the Block rule keeps its stem square when a vertex moves. TacticalDraw applies each kind's rule automatically, so the host does not need kind-specific interaction code.

Input contract. A kind's coordinate requirements. Every coordinate must be a finite [longitude, latitude] pair, and the list must contain enough points. The renderer ignores points beyond the declared maximum.

Validation mode. How the renderer handles an input-contract failure: silent returns an empty render, warn also logs a warning, and throw raises an error. Set it per render call, not as a control-measure option.

Geometric degeneracy. Valid points that cannot form a shape—for example, two coincident points creating a zero-length baseline. This always produces an empty render without a message, regardless of validation mode. It can occur temporarily while the user is drawing.

Drawing and editing ​

Map adapter. The engine-independent bridge between TacticalDraw and a map. It handles GeoJSON rendering, interactions, and viewport calculations without containing control-measure logic. The same TacticalDraw code therefore works with any engine that has an adapter. See Engines.

Engine. A map library. TacticalDraw provides adapters for OpenLayers, MapLibre GL JS, and Leaflet, all behind the same interface.

Session. The live object for one draw or edit. It exposes the working state, commit and abort methods, undo history, and change events. See Sessions.

Rubber-band guide. A line through the current points to the pointer during a variable-length draw or edit. Areas also show a closing segment. It appears alongside the graphic preview and can be disabled per call.

Snapping. Pulling a placed or dragged point onto a nearby control point, generated edge, or host-supplied target within a pixel tolerance. Off by default. See Snapping.

Selection highlight. A passive outline that marks graphics as selected without starting an edit. See Selection highlights.

Sizing ​

Some dimensions are independent of the control points, including FLOT scallop radius, fortified-line tooth size, antitank-ditch tooth height, and label height. Labels use labelSize for meters or labelSizePixels for pixels. The following terms apply to all such dimensions.

Size anchor. Whether a dimension stays fixed relative to the ground or the screen. The stored graphic options carry this choice.

  • Ground-anchored: measured in meters. Its geographic size stays fixed, so its on-screen size changes with zoom.
  • Screen-anchored: measured in pixels. TacticalDraw rebuilds its geometry after view changes to keep its on-screen size fixed.

Baking. Converting a pixel size to meters at the zoom level where a draw or edit finishes. The result becomes ground-anchored. This is the default; choose a screen anchor to retain pixel sizing. Active previews remain screen-anchored until commit.

Size input unit. The pixels or meters supplied by the user. Meter values are always ground-anchored. Pixel values bake to meters by default and remain screen-anchored only when requested.

Label size band. The pixel range in which ground-anchored label text is shown. A label renders at labelSize / resolution pixels and stops growing at the maximum. Below the minimum it keeps shrinking with its graphic, fades out, and then hides, so it never spills outside the area it names. Configure it per layer with TextStyleOptions.textSizeMinPixels and textSizeMaxPixels; the default is 4–24 pixels. This is a layer style, not stored graphic data. Screen-anchored labels keep their pixel size without clamping.

Map sheets ​

Map sheet. A printable SVG or PDF page that shows graphics at a true nominal scale on a UTM or UPS grid. See Map sheets.

Registered overlay. A transparent map sheet with MGRS registration marks, printed on film or paper and laid over a paper map of the same scale.

Styling ​

Symbol color. The shared stroke and fill color of a control measure, defaulting to black (obstacles default to green). Override either channel when needed—for example, to make an area fill transparent. See Styling.

Filledness. Whether a symbol part is solid or outlined. Doctrine defines this per part and the generator applies it; geometry type alone does not decide it. An arrowhead is solid, while area measures such as Block may be outlined.

Fill pattern. How a filled part is painted: solid, hatch, reverse-hatch, cross-hatch, horizontal, vertical, or dots. Patterns use the resolved fill color and fixed geometry. Renderers without pattern support fall back to a solid fill. Mine-area measures also use six intrinsic mine-* pictogram patterns selected by their Modifier 1 value.

Color alpha. The alpha channel in color, strokeColor, or fillColor. Hit-testing respects this value, so a fully transparent fill provides no selection surface.

Graphic opacity. A display-time multiplier from 0 to 1, stored as style.opacity. Hit-testing ignores it, so even opacity: 0 remains selectable. Final alpha equals graphic opacity multiplied by color alpha. Point symbols fade as one SVG; control-measure parts fade individually and may appear darker where they overlap. See Graphic opacity.