diff --git a/src/renderer/components/feature-descriptors.json b/src/renderer/components/feature-descriptors.json index 0fa5816e..4015abed 100644 --- a/src/renderer/components/feature-descriptors.json +++ b/src/renderer/components/feature-descriptors.json @@ -22281,5 +22281,53 @@ "maxPoints": 2, "minPoints": 2 } + }, + { + "standard": "NATO ATP-112", + "sidc": "G*T*ZC----*****", + "scope": "CONTROL", + "geometry": "MultiPoint", + "dimension": "TASK", + "hierarchy": [ + "TACTICAL GRAPHICS", + "TASKS", + "CAPTURE" + ], + "parameters": { + "arc": "90", + "layout": "seize" + } + }, + { + "standard": "NATO ATP-112", + "sidc": "G*T*ZR----*****", + "scope": "CONTROL", + "geometry": "MultiPoint", + "dimension": "TASK", + "hierarchy": [ + "TACTICAL GRAPHICS", + "TASKS", + "RECOVER" + ], + "parameters": { + "arc": "90", + "layout": "seize" + } + }, + { + "standard": "NATO ATP-112", + "sidc": "G*T*ZE----*****", + "scope": "CONTROL", + "geometry": "MultiPoint", + "dimension": "TASK", + "hierarchy": [ + "TACTICAL GRAPHICS", + "TASKS", + "EVACUATE" + ], + "parameters": { + "arc": "90", + "layout": "seize" + } } ] \ No newline at end of file diff --git a/src/renderer/components/milsymbol/symbols.json b/src/renderer/components/milsymbol/symbols.json index 96fc9f49..8de55b11 100644 --- a/src/renderer/components/milsymbol/symbols.json +++ b/src/renderer/components/milsymbol/symbols.json @@ -2955,6 +2955,33 @@ } ] }, + "EXT_TASKS_CAPTURE_TEXT": { + "texts": [ + { + "text": "C", + "x": 120, + "y": 90 + } + ] + }, + "EXT_TASKS_RECOVER_TEXT": { + "texts": [ + { + "text": "R", + "x": 120, + "y": 90 + } + ] + }, + "EXT_TASKS_EVACUATE_TEXT": { + "texts": [ + { + "text": "E", + "x": 120, + "y": 90 + } + ] + }, "EXT_TASKS_DELAY_TEXT": { "texts": [ { @@ -3845,6 +3872,18 @@ "EXT_TASKS_SEIZE", "EXT_TASKS_SEIZE_TEXT" ], + "G-T-ZC----": [ + "EXT_TASKS_SEIZE", + "EXT_TASKS_CAPTURE_TEXT" + ], + "G-T-ZR----": [ + "EXT_TASKS_SEIZE", + "EXT_TASKS_RECOVER_TEXT" + ], + "G-T-ZE----": [ + "EXT_TASKS_SEIZE", + "EXT_TASKS_EVACUATE_TEXT" + ], "G-T-L-----": [ "EXT_TASKS_CURVED_ARROW", "EXT_TASKS_DELAY_TEXT" diff --git a/src/renderer/map/style/multipoint-style.js b/src/renderer/map/style/multipoint-style.js index 1fe63e2e..3f2a57b0 100644 --- a/src/renderer/map/style/multipoint-style.js +++ b/src/renderer/map/style/multipoint-style.js @@ -385,11 +385,8 @@ geometries['G*M*NM----'] = ({ feature, styles, points }) => { ] } -/** - * TACGRP.TSK.SZE - * TASKS / SEIZE - */ -geometries['G*T*Z-----'] = ({ styles, points, resolution }) => { +const seizelike = label => options => { + const { styles, points, resolution } = options const [C, O, S] = TS.coordinates(points) const segmentO = TS.segment([C, O]) const segmentS = TS.segment([C, S]) @@ -408,6 +405,11 @@ geometries['G*T*Z-----'] = ({ styles, points, resolution }) => { [0.1, -0.1], [0, 0], [0.1, 0.1] ]) + const text = segment => styles.text(TS.point(arcCoords[Math.floor(arcCoords.length / 2)]), { + text: label, + flip: true + }) + return [ styles.solidLine(TS.collect([ arc, @@ -418,13 +420,34 @@ geometries['G*T*Z-----'] = ({ styles, points, resolution }) => { TS.lineString(segmentO), TS.lineString(segmentS) ])), - styles.text(textAnchor, { - text: 'S', - flip: false - }) + ...(label ? [TS.point(arcCoords[Math.floor(arcCoords.length / 2)])].map(text) : []) ] } +/** + * TACGRP.TSK.SZE + * TASKS / SEIZE + */ +geometries['G*T*Z-----'] = seizelike('S') + +/** + * TACGRP.TSK.CAP + * TASKS / CAPTURE + */ +geometries['G*T*ZC----'] = seizelike('C') + +/** + * TACGRP.TSK.RCV + * TASKS / RECOVER + */ +geometries['G*T*ZR----'] = seizelike('R') + +/** + * TACGRP.TSK.EVA + * TASKS / EVACUATE + */ +geometries['G*T*ZE----'] = seizelike('E') + /** * TACGRP.MOBSU.OBST.OBSEFT.TUR * OBSTACLE EFFECT / TURN