Common operational pictures
Add tactical overlays to an existing web COP without replacing its map or data services.
Zaes Tactical Graphics generates editable FM 1-02.2 and APP-6 control measures, tactical mission tasks, boundaries, corridors, sectors, obstacles, and other multipoint graphics as portable GeoJSON. Use them in planning, rehearsal, training, common operational pictures, and other mission applications.
The library handles the geometry for multipoint control measures. Your application keeps its basemap, data, storage, permissions, tracks, overlays, and workflow.
Add tactical overlays to an existing web COP without replacing its map or data services.
Draw, edit, save, and restore control measures for operational planning and training workflows.
Use the graphic families relevant to a focused mission application instead of building a full symbol engine.
Put a working tactical-graphics workflow in front of operators before committing to a larger integration.
A capable development team can adopt the library under the MIT license on its own. Bring us in when the schedule, integration, or mission workflow needs a team that already knows the code and the problem.
Add drawing, editing, storage, and exchange of tactical graphics to an existing COP or planning application.
Typical scope: renderer integration, editing UI, saved overlays, and connections to existing application services.
Implement the graphics, amplifiers, renderer support, or exchange behavior a program needs.
Typical scope: a defined symbol family, new renderer adapter, or extension for a particular program.
Connect tactical graphics to representative tracks, overlays, data services, and operator workflows.
Typical scope: a working demonstration used to evaluate a use case before larger integration.
Prepare the implemented capability for the program environment and the team that will own it.
Typical scope: testing, documentation, SBOM, deployment packaging, maintenance planning, and transition support.
The gallery below comes from the demo application's Draw samples function. The live demo lets you draw a graphic, move its control points, change its properties, and switch between the OpenLayers and MapLibre renderers.
Open the live demo →
The open source package draws on 2D maps. Commercial add-ons from Zaes carry the same graphics and the same saved files further: onto Cesium terrain in 3D, to operators on TAK devices as Cursor on Target, to other command and control systems as NATO Vector Graphics or C2SIM, and into the ArcGIS Maps SDK. They are licensed separately from the MIT package.
Every graphic the library draws, draped over Cesium terrain, with airspace standing up as volumes. Built for CesiumJS; terrain, imagery, and Cesium ion services are customer provided or separately licensed.
Click to enlarge
Push the plan from the web map to TAK Server in one click as Cursor on Target (CoT), so the people carrying it see what the planners drew.
Click to enlarge
Share plans with other command and control systems in the formats they read: NATO Vector Graphics (NVG), the NATO format for exchanging tactical overlays, and C2SIM, the SISO standard for passing plans between command and control systems and simulations.
All 318 graphics in the ArcGIS Maps SDK for JavaScript, drawn, edited and saved in a MapView with the same gestures and files as the other engines.
The input is a GeoJSON feature with a Zaes tacticalGraphic property. The core returns generated GeoJSON plus label anchors and edit handles. A renderer adapter is still required for full styling and interaction in a map.
A point-symbol library places a unit or equipment symbol at one coordinate. Tactical graphics turn multiple user-defined points into editable lines, areas, corridors, sectors, obstacles, and mission tasks that must retain their intended form as the geometry changes. Zaes focuses on that multipoint problem and can be used alongside point-symbol libraries such as milsymbol.
import { renderTacticalGraphic, TacticalGraphicName }
from '@zaes/tactical-graphics';
const { graphic, labels, handles } =
renderTacticalGraphic({
type: 'Feature',
geometry: {
type: 'LineString',
coordinates: [
[-77.04, 38.89],
[-76.95, 38.95]
]
},
properties: {
tacticalGraphic: {
name: TacticalGraphicName.MainAxisOfAdvance,
designation: '1-508 IN',
hostility: 'Friend',
width: 300
}
}
});
The core has no OpenLayers or MapLibre dependency. It can run in a browser, server process, or test runner.
OpenLayers and MapLibre adapters provide drawing and editing behavior for each map. Another engine requires another adapter.
Save the original feature and the properties that define the tactical graphic so the application can restore it as editable control points.
The core depends only on the individual Turf modules it calls — 34 packages in the production tree, every one permissively licensed. Mapping libraries are optional peer dependencies used by their respective entry points.
| Import | What it provides | Additional library |
|---|---|---|
@zaes/tactical-graphics | Geometry, paint descriptions, label anchors, and edit handles | individual @turf/* modules |
…/openlayers | OpenLayers drawing, styling, and editing adapter | ol peer |
…/maplibre | MapLibre layers, styling, and editing adapter | maplibre-gl peer |
The library implements the tactical graphics of FM 1-02.2 (January 2025, with Change 1), using its plates for shape and amplifier placement, and NATO APP-06 Edition E for the symbols, entity codes and anchor-point rules. The entity codes follow the control measure numbering MIL-STD-2525 shares with APP-06. Automated regression tests protect the implemented behavior as the library changes.
Zaes does not claim government certification or independent conformance validation. Programs should perform the review appropriate to their mission and configuration.
282 of the graphics appear in MIL-STD-2525E Change 1, by entity code. The library does not claim full MIL-STD-2525 conformance.
The Army reference used for graphical plates and amplifier placement.
NATO Joint Military Symbology, Edition E - the source for the symbols and anchor-point numbering the joint standard shares. NATO is acknowledged as the publisher.
Every graphic records whether it is defined in FM 1-02.2, APP-06, or both, including the APP-06 six-digit entity code where applicable.
More than 300 graphics across 14 categories cover more than 300 doctrinal variants. A variant that differs only by an amplifier or property, such as affiliation or traffic direction, shares one graphic. Every APP-06 line and area group is complete.
A Leaflet renderer is planned for the open source package. Roadmap items are not current package capabilities.
The catalog groups the current package by graphic family and shows the actual generated output. A doctrinal variant may share one implementation when the difference is controlled by an amplifier or property.
The published package can be used, modified, and redistributed under its MIT license. It has no license key, seat count, or package telemetry. You do not need Zaes's permission to include it in your product. The add-ons are commercial and licensed separately.
Install the package, review the source, run the demo, and integrate it with your own team.
Documentation → GitHub repository →Sponsor a defined graphic family, amplifier, renderer, or integration that your schedule requires.
Describe the requirement →Use Zaes for application integration, a mission thread prototype, or program delivery and transition.
Discuss the application →Send us the mapping environment, the workflow, and the graphics that matter. We can tell you whether the open source package covers it and where Zaes could help.