{"name": "Military Cartography Tools", "package_name": "MilitaryCartographyTools", "version": "1.3.1", "experimental": false, "qgis_min": "3.44.0", "qgis_max": "4.99.0", "downloads": 282, "uploaded_by": "kattapraveen", "upload_datetime": "2026-08-25T13:36:48.110838", "changelog": "1.3.1\n- Fixed APP-6E (MIL-STD-2525E) entity dropdowns losing their\nparent name for ~105 entities across 7 domains, e.g. Recoilless\nGun's Light/Medium/Heavy variants collapsing into bare \"Light\",\n\"Medium\", \"Heavy\" with no indication of what they belonged to.\n1.3.0\n- Sensor Coverage: plot several sensors at low, medium or high\nlevel and see each level's combined coverage as a single merged\nperimeter. Every sensor carries its own height, detection\nceiling, maximum range, MIL-STD-2525 affiliation and\ndesignation, plus its latitude, longitude and MGRS position\nfilled in automatically and kept up to date as it moves.\n- Detection height is measured from the antenna, not from sea\nlevel, so siting a sensor higher raises the whole band of\nairspace it covers. A target is modelled flying level at a fixed\naltitude rather than at a fixed height above whatever ground is\nunderneath it, so terrain taller than the target genuinely hides\nwhat is behind it.\n- Coverage merges only between sensors on the same side: two\nfriendly radars fuse into one perimeter, a friendly and a\nhostile one stay two overlapping shapes. Each sensor is\nlabelled along its own stretch of the outline.\n- Coverage is drawn as a perimeter rather than a filled shape, so\nit never washes out the terrain being judged against it. Low,\nmedium and high are told apart by line weight and dash pattern.\n- Coverage redraws whenever a sensor points layer is saved, and a\nnew Regenerate Sensor Coverage action redraws every level on\ndemand - after reopening a project, say, or after pointing a\nlaydown at a different DEM.\n- Radar propagation uses the 4/3-earth refraction model rather\nthan the optical coefficient Line of Sight and Viewshed use.\n- Viewshed's maximum distance raised from 50 km to 500 km.\n- Fixed: Viewshed and Sensor Coverage both computed visibility\npast the edge of the DEM, reporting the NoData padding beyond it\nas visible ground. Both are now bounded by the terrain actually\nloaded.\n\n1.2.0\n- Every NATO symbol other than lines and areas can now be rotated\n(a Rotation field, degrees clockwise from north) and resized (a\nScale field, percent of its own default size) - added to every\npoint-symbol layer in the plugin. Rotating or scaling a symbol\ncarries its own amplifiers (echelon ticks, unique designation\ntext) along with it as one picture.\n- Trip Wire and Abatis (Obstacle Control Measures) are now point\nsymbols - a fixed page size with their own Rotation field,\ninstead of a shape that grew or shrank with however long a line\nyou digitized. An existing project with either digitized as a\nline will need those two features re-drawn as points; nothing\nelse on that layer is affected.\n- Widened the lines milsymbol draws inside its own icons - some,\nlike Checkpoint and the Observation Post family, were thin\nenough to be hard to read at working scales. Every milsymbol-\nrendered icon in the plugin is affected; the plugin's own hand-\nbuilt lines and areas (control measure lines, obstacle belts,\nand similar) are unchanged.\n- Corrected several symbol-drawing issues found in a full pass\nagainst the standard: Position Area For Artillery's designator\nlabel now always stays on the polygon's own perimeter, including\non irregular shapes; Limited Access Area's unique designation is\nnow masked like every other area's; Radiation Dose Rate Contours\nnow suffixes \"cGy\" to the typed number automatically; Minimum\nSafe Distance Zone's concentric-ring labels no longer overlap or\nhide each other; the Dummy Minefield's decoy chevron sits closer\nto the minefield it belongs to; Electro-Optical Intercept's \"O\"\nlabel no longer shows a leaked dot from the line underneath; and\nMission Task Fix's kinks and letter now shrink to fit a short\ndigitized line instead of disappearing entirely.\n- Alphabetised the NATO Symbols and Control Measures menus - both\nhad followed the standard's own printed table order, which has\nno reason to survive into a plain \"pick one of many\" dropdown.\n- Renamed \"Supply Points\" to \"Supply Control Measures\" in the\nControl Measures menu, matching the naming convention every\nother entry that adds more than one layer type already uses (it\nadds three: Points, Lines and Areas).\n- Newly-added symbology layers now insert collapsed in the Layers\npanel rather than expanded - one click routinely adds two or\nmore layers at once, and an expanded legend for each stacks up\nfast.\n1.1.0\n- Renamed in two Entity dropdowns: what the Land Installation and\nActivities layers called \"Law Enforcement Vessel\" is Coast Guard,\nwhich is what the standard prints for that code and what the\nplugin has always drawn. If you picked that entry before, your\nsymbol is unchanged and was always correct - only the name in the\nlist was wrong. The genuine Law Enforcement Vessel, on the Sea\nSurface layer, is untouched.\n- Land Equipment's law-enforcement entities were missing eight of\ntheir twelve: ATF, Department of Justice, FBI, Police, Secret\nService, TSA, Coast Guard and US Marshals Service have been\nadded alongside the Border Patrol, Customs and DEA entries that\nwere already there.\n- Land Installation gained the two it was missing, ATF and Police,\ncompleting that layer's law-enforcement list as well.\n- Corrected two names that read \"Agency\" where the standard reads\n\"Administration\" - Drug Enforcement Administration (DEA) and\nTransportation Security Administration (TSA). Symbols unchanged.\n- The test suite now runs against QGIS 4.2.1 alongside 3.44.12.\n- Added MIL-STD-2525E and APP-6E tactical graphics support, alongside\nthe existing MIL-STD-2525D/APP-6D symbology, via a new \"Symbology\nEdition\" toolbar menu. This picks which standard NEWLY added\nsymbology layers are built against; a layer already in a project\nis never changed by switching it, and a layer created before this\nexisted keeps working exactly as before (it is read as 2525D,\nwhich is what it always was). Adding the same layer type under\nboth editions now works side by side in one project - they get\ndistinct names, e.g. \"Air (2525D/6D)\" and \"Air (2525E/6E)\".\n- Land Unit's own Sector 1/Sector 2 modifier dropdowns are now\navailable on the Land Unit layer (133 codes), matching the\nexisting modifier dropdowns already on Land Civilian, Equipment\nand Installation.\n- Fixed a real, if narrow, correctness bug in a third-party library\nthis plugin bundles: 8 of Land Unit's own Sector 1 modifiers\n(Airmobile/Air Assault, Node Center, Sensor Control Module, Single\nShelter Switch, Accident, Other, Civilian, Antisubmarine Warfare)\nwere drawing the wrong icon under MIL-STD-2525D. Picking one of\nthese from the dropdown now draws the icon its own name describes.\n- Fixed the Boundary line's echelon marker (C2 Measures): choosing\nan echelon without also typing a unit designation used to leave\nit undrawn entirely, and choosing it alongside only one\ndesignation could draw it on the wrong side of the line. It now\nalways appears where the standard's own template puts it.\n- Two label corrections: the Activities layer's \"Law Enforcement\"\nentity now reads \"Law Enforcement Operation\", matching the\nstandard's own wording; several MIL-STD-2525E \"(Generic)\" entries\nthat rendered as an unhelpful blank circle with nothing to\ndistinguish them have been removed from the Entity dropdowns they\nappeared in.\n- Under MIL-STD-2525E, every Sector 1/Sector 2 Modifier dropdown\nthat already existed now also offers that standard's 93 \"common\"\nmodifiers (things like Robotic, Cargo or Command Post Node, which\napply across many symbol types rather than one) alongside the\nsymbol's own list. A symbol set with no MIL-STD-2525E modifiers of\nits own still has no dropdown, same as before.\n- Added an \"Insert Symbol\" button to every print layout window's own\ntoolbar: pick an Affiliation, Symbol Set and Entity and it places\nthat symbol directly on the layout page as a normal, draggable\npicture item - for a legend key or callout, without needing a\ngeoreferenced feature on the map.\n1.0.3\n- Correctness fix: the drawn UTM/GZD grid now honours the two\nexceptions the standard itself makes. Over south-west Norway\n(band V) zone 31V is 3 degrees wide and 32V is 9, not 6 each;\nover Svalbard (band X) zones 32X, 34X and 36X do not exist at\nall, with 31X, 33X, 35X and 37X widened to cover that ground.\nMGRS coordinate conversion already applied both, so the grid\nlayer and the plugin's own MGRS readings had disagreed with\neach other in those two regions.\n- Three fixes to the GZD labels: they no longer pile up on top of\none another at world scale and bury the grid lines; they no\nlonger disappear when you pan inside a zone larger than the\nmap view; and they no longer overhang into the neighbouring\nzone when only a narrow strip of a zone is on screen. Where a\nlabel switches placement is now decided from each cell's own\nsize rather than one global scale for the whole world.\n- The user guide's \"Getting a DEM\" section now covers GMRT for\nbathymetry, including what to expect from below-sea-level\nelevations once loaded.\n1.0.2\n- The Bandit suppression added in 1.0.1 for the mine-scatter random\nnumber generator was one line too high to take effect, so that\nfalse positive came back on upload. Moved onto the flagged line\nitself, and the whole set verified by running Bandit locally\nrather than by another upload round-trip.\n1.0.1\n- Fixed the findings from 1.0.0's automated Plugin Repository\nreview: the milsymbol.js bridge now imports QJSEngine through\nqgis.PyQt rather than PyQt5/PyQt6 directly, so it resolves to\nwhichever Qt binding the running QGIS was built against. The\nremaining scanner findings were false positives (a deterministic,\nseeded random generator used for mine-symbol scatter, and four\nMIL-STD-2525D entity names containing the word \"Secret\" - the US\nSecret Service - read as credentials by keyword heuristics); each\nis now annotated in place rather than silently left to re-flag.\n1.0.0\n- First stable release. The plugin is no longer marked experimental.\n- Complete MIL-STD-2525D / APP-6 tactical graphics (Phase 10): the\nfull control-measure set - manoeuvre, offensive, defensive,\nobstacle, fire support, target acquisition, airspace, maritime,\nCBRN defence, deception, intelligence, sustainment, command and\ncontrol, field fortification, and mission tasks - plus entity\nsymbols across the land, air, sea surface, subsurface, space,\ncyberspace, SIGINT and activities layers, all keyed to their own\nSIDC. Drawn as real QGIS symbology (geometry generators, data-\ndefined properties, rule-based labelling), not stamped images, so\nevery symbol scales, rotates and prints correctly at any map\nscale.\n- Viewshed gained a coverage colour picker and an outline-only\nrendering option, so several observers' coverage can be told\napart and laid over terrain without hiding it.\n- Tanaka Contours now carries a caution about generation time,\nwhich can be long on a large DEM at a fine contour interval.\n0.3.0\n- New navigation and production tools (Phase 9): a Bearing/Range tool,\nGPX/KML waypoint import/export, and Map Sheet Series - batch-generate\na numbered series of print sheets tiling a large area, each sheet\nnamed after the real UTM/MGRS grid square it falls in, not an\ninvented numbering scheme.\n- Every print layout now includes an automatic grid-position diagram\nshowing where the map sits in the UTM/MGRS grid hierarchy, with the\nmap's own footprint outlined to scale.\n- Line of Sight and Viewshed dialogs now show MGRS alongside latitude/\nlongitude.\n- Hypsometric Tint gained an optional stepped/discrete colour ramp\n(in addition to the existing smooth gradient), and the shared\ncolour ramp it uses with Tanaka Contours was warmed from a dusty\nrose toward a proper orange/brown hue in the mid-to-high elevation\nbands.\n0.2.1\n- Fixed Plugin Repository validator findings from the 0.2.0 upload:\n3 Qt6 forward-compatibility enum-scoping errors in the new\nLine of Sight/Viewshed marker code, and a security finding\n(insecure tempfile.mktemp() usage, 9 call sites across the new\nterrain analysis modules) - all Processing algorithm outputs now\nuse QgsProcessing.TEMPORARY_OUTPUT instead.\n0.2.0\n- New terrain analysis toolset (Phase 8), all fully offline/local:\nTanaka (illuminated) contours, Hypsometric Tint, Line of Sight,\nCombined Hillshade, and Viewshed (dead-ground analysis) - each\ndriven entirely by local GDAL/QGIS Processing against your own\nDEM, with no network access of any kind.\n0.1.2\n- Fixed MGRS 100km grid labels landing in the wrong square at some\nzoom levels, and the print-layout scale bar rendering too large\nat close-in scales (e.g. 1:1,000-1:2,000).\n0.1.1\n- Fixed Plugin Repository validator findings: fully-scoped QGIS enum\naccess (Qt6 forward-compatibility) and one Flake8 lambda-assignment\nfinding.\n0.1.0\n- Initial release: MGRS conversion, coordinate probe, military grid\ngeneration (UTM/GZD, MGRS 100km, 10/5/1km sub-grids), automated\nprint-layout production, grid convergence and magnetic declination\n(WMM2025) expression functions.", "external_deps": null, "download_url": "https://plugins.qgis.org/plugins/MilitaryCartographyTools/version/1.3.1/download/"}