ADD: added APP-6 Symbols to the Map
5
node_modules/milsymbol/.editorconfig
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
19
node_modules/milsymbol/.eslintrc.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
module.exports = {
|
||||
extends: "eslint:recommended",
|
||||
env: {
|
||||
browser: true,
|
||||
commonjs: true
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 6,
|
||||
sourceType: "module"
|
||||
},
|
||||
plugins: ["prettier"],
|
||||
rules: {
|
||||
"prettier/prettier": "error",
|
||||
"linebreak-style": ["error", "unix"],
|
||||
"no-console": ["error", { allow: ["info", "warn", "error"] }],
|
||||
"no-unused-vars": ["error", { vars: "all", args: "none" }],
|
||||
semi: ["error", "always"]
|
||||
}
|
||||
};
|
||||
5
node_modules/milsymbol/.travis.yml
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "10"
|
||||
script:
|
||||
- npm run build
|
||||
427
node_modules/milsymbol/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,427 @@
|
||||
# Change Log
|
||||
|
||||
## 2.0.0
|
||||
|
||||
### Added
|
||||
|
||||
- Added support for Engagement Bars
|
||||
|
||||
- Use the option engagementBar to set the bar text
|
||||
- Use the option engagementType to define "TARGET", "NON-TARGET", or "EXPIRED" as type
|
||||
|
||||
- Added support for the field country as specified in APP-6 D
|
||||
- Added support for the field installationComposition as specified in APP-6 D
|
||||
- Added possiblity to control more color on symbol level
|
||||
- Support for speed leaders
|
||||
- Support for text background color using infoBackground and infoBackgroundFrame options
|
||||
|
||||
### Changed
|
||||
|
||||
- `symbol.getProperties()` is removed and `symbol.getMetadata()` should be used instead.
|
||||
|
||||
- ms.getHqStafLength changed to ms.getHqStaffLength, fixed spelling
|
||||
|
||||
- ms.setHqStafLength changed to ms.setHqStaffLength, fixed spelling
|
||||
|
||||
- Thanks to @okwolf we moved from webpack to rollup for development
|
||||
|
||||
- Where there are multiple text fields in the same position, they are now joined
|
||||
by a / instead of a space
|
||||
|
||||
- Changed location of feint/dummy indicator to be more similar to images in
|
||||
standard documents
|
||||
|
||||
- Make it possible to set infoColor to a Color Mode
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
- `symbol.getProperties()` is removed (use `symbol.getMetadata()` instead)
|
||||
|
||||
- `ms.setAutoSVG` has now been removed.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fields commonIdentifier (AF) and equipmentTeardownTime (AE) had swiched
|
||||
places, now corrected
|
||||
|
||||
- The condition bar is now drawn below the headquartersElement field
|
||||
|
||||
- Some natural events in 2525C was framed even if they shouldn't be
|
||||
|
||||
### Security
|
||||
|
||||
- Prevented XSS issue where malicious code could be inserted into text fields of SVG symbols, all < and > are now encoded to prevent this.
|
||||
|
||||
## 1.3.3 14 NOV 2017
|
||||
|
||||
### Added
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated and moved the unit generator from dev to examples.
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
- The option infoColor was not set when used, this is now fixed, again.
|
||||
- The option hqStaffLength was not set when used, this is now fixed.
|
||||
- Fill opacity affected outline opacity as well in canvas output.
|
||||
|
||||
### Security
|
||||
|
||||
## 1.3.2 13 NOV 2017
|
||||
|
||||
### Added
|
||||
|
||||
### Changed
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
- Following symbols were drawn as fixed wing instead of rotary wing
|
||||
|
||||
- WAR.SOFUNT.AVN.ROT.ATK
|
||||
- WAR.SOFUNT.AVN.ROT.UTY
|
||||
- WAR.SOFUNT.AVN.ROT.UTY.LIT
|
||||
- WAR.SOFUNT.AVN.ROT.UTY.MDM
|
||||
- WAR.SOFUNT.AVN.ROT.UTY.HVY
|
||||
|
||||
- The option infoColor was not set when used, this is now fixed.
|
||||
|
||||
### Security
|
||||
|
||||
## 1.3.1 17 OCT 2017
|
||||
|
||||
### Added
|
||||
|
||||
### Changed
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed canvas output in Microsoft Edge 14
|
||||
|
||||
### Security
|
||||
|
||||
## 1.3.0 21 AUG 2017
|
||||
|
||||
### Added
|
||||
|
||||
- symbol.getOptions(_includeStyle_) will return the options that are set on the
|
||||
symbol.
|
||||
|
||||
- symbol.getStyle() will return the style options that are set on the symbol.
|
||||
|
||||
- Added files for intellisense when used in Visual Studio Code
|
||||
|
||||
### Changed
|
||||
|
||||
- Options and Style are now stored in separate Objects on the symbol for better
|
||||
structure.
|
||||
|
||||
- ms.Symbol and setOptions can now take any number of arguments from 0 to n.
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
- ArcGIS example had to be updated because of change of how Options and Style
|
||||
are stored.
|
||||
|
||||
- monoColor was initialized as `false` instead of an empty string, this is now
|
||||
corrected and makes the correct status modifiers to be used by default.
|
||||
|
||||
- 10031000001104000000 was drawn with an icon IW instead of IO (Since it is IW
|
||||
in 2525C, but that is now fiexed.)
|
||||
|
||||
- Fixed the size of the sensor icon used in 2525D
|
||||
|
||||
### Security
|
||||
|
||||
## 1.2.1 12 JUN 2017
|
||||
|
||||
### Added
|
||||
|
||||
### Changed
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
- Altitude/Depth was sometimes not labeled on 2525D symbols
|
||||
|
||||
- Typo in Changelog
|
||||
|
||||
### Security
|
||||
|
||||
## 1.2.0 11 JUN 2017
|
||||
|
||||
### Added
|
||||
|
||||
- Added build-amd, to build an AMD only module you can now run `npm run build-amd`
|
||||
|
||||
### Changed
|
||||
|
||||
- isValid(option) can now take an bolean input that makes it return a validaton
|
||||
object with extended information about the vadility.
|
||||
|
||||
- isValid now validates the mobility modifier as well as the symbol icon.
|
||||
|
||||
- Updated ENERGY FACITILIES INFRASTRUCTURE to better representation of the
|
||||
standard.
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed all methods that was deprecated in milsymbol 1.0.0
|
||||
|
||||
### Fixed
|
||||
|
||||
- The quantiy field would be cut if the content was wider than the symbol, this
|
||||
is now fixed so that the symbol size adopts to to width of the quantity field.
|
||||
|
||||
- Fixed Land Unit M1 10 command and control that was displayed in as a Y instead
|
||||
of C2.
|
||||
|
||||
- Some modifiers on Signals Intelligence symbols in 2525C was incorrect
|
||||
|
||||
### Security
|
||||
|
||||
## 1.1.0 16 APR 2017
|
||||
|
||||
I would like to thank @okwolf that has contributed with unit tests and some code
|
||||
reorganization.
|
||||
|
||||
### Added
|
||||
|
||||
- It is now possible to use `sidc` or `SIDC` in an options object.
|
||||
|
||||
- It is now possible to initiate a symbol with just an options object
|
||||
`ms.Symbol({options})`.
|
||||
|
||||
- ms.Symbol().isValid() now returns a boolean representing if it was possible to
|
||||
find the symbol icon for the provided SIDC.
|
||||
|
||||
- The source code for the unit generator is now provided in the dev folder.
|
||||
|
||||
- Added 2525B symbols that are missing in 2525C, so now we have full support for
|
||||
2525B as well.
|
||||
|
||||
- Initial unit tests added to the repository.
|
||||
|
||||
### Changed
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix for that tactical points with labels with large font sizes might draw too
|
||||
narrow so that part of the label can't be seen.
|
||||
|
||||
- Fix for that units with invalid icon part in the SIDC did not get the upside
|
||||
down question mark when canvas output was used.
|
||||
|
||||
- G-F-PTS--- TACGRP.FSUPP.PNT.TGT.PTGT and G-C-FSTP-- 2.X.2.3.1.1.1 POINT/SINGLE
|
||||
TARGET now uses altitudeDepth instead of additionalInformation1 to display the
|
||||
target altitude.
|
||||
|
||||
- Made sure that tactical points that dosen't have labels in the specifications
|
||||
don't get labels even if they are set.
|
||||
|
||||
### Security
|
||||
|
||||
## 1.0.0 03 MAR 2017
|
||||
|
||||
- Milsymbol is now split into several modules and built with
|
||||
[webpack](https://webpack.github.io/), this makes the code easier to maintain.
|
||||
|
||||
- Avoid getting and setting properties directly, use methods for this when they
|
||||
are available, in the future properties might change names.
|
||||
|
||||
### Added
|
||||
|
||||
- colorMode property can now be set to a string representing the name of a
|
||||
registered color mode.
|
||||
|
||||
- symbol.getSize() returns an object with the width and height of the symbol.
|
||||
|
||||
- symbol.getAnchor() returns an object with the x and y offset of the symbol.
|
||||
|
||||
- symbol.getOctagonAnchor() returns an object with the x and y offset of the
|
||||
octagon center.
|
||||
|
||||
- bbox.merge(another-bbox), use this instead of MS.bboxMax for merging bounding
|
||||
boxes.
|
||||
|
||||
- Milsymbol can now be used as a AMD/CommonJS/etc... module, by requiering
|
||||
`milsymbol`, the global `var` is called ms.
|
||||
|
||||
- ms.getVersion() that returns the version as a string.
|
||||
|
||||
- ms.addSIDCicons(sidcFunction, type) for adding sidc functions.
|
||||
|
||||
- ms.addLabelOverrides(labelFunction, type) for adding label functions.
|
||||
|
||||
- ms.addSymbolPart(part) should be used instead of MS.addMarkerParts(part)
|
||||
|
||||
- ms.getSymbolParts() should be used instead of MS.getMarkerParts()
|
||||
|
||||
- ms.setSymbolParts(parts) should be used instead of MS.setMarkerParts(parts)
|
||||
|
||||
- ms.BBox() should be used instead of MS.bbox(). (Since it is a class...)
|
||||
|
||||
- ms.ColorMode() should be used instead of MS.colorMode(). (Since it is a
|
||||
class...)
|
||||
|
||||
- ms.Symbol() should be used instead of MS.symbol(). (Since it is a class...)
|
||||
|
||||
- Tactical points is now part of _/dist/milsymbol.js_, no need to include any
|
||||
extra files.
|
||||
|
||||
- Tactical points now supports APP6-B ANNEX E.
|
||||
|
||||
- Symbols with an invalid icon in the SIDC will now be rendered with an upside
|
||||
down ?. (According to MIL-STD-2525D)
|
||||
|
||||
### Changed
|
||||
|
||||
- **Global variable is now `ms` instead of `MS`.**
|
||||
|
||||
- Feint/Dummy indicator drawn as specified in MIL-STD-2525D change 1.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Avoid setting properties directly, use setOptions(options) instead.
|
||||
|
||||
- Do not use .XML anymore, use asSVG() instead, **if needed set `ms.autoSVG = true`**. ms.autoSVG will be removed in a future version.
|
||||
|
||||
- getMarker(), it's not needed anymore, symbols are automatically updated when
|
||||
options are updated using setOptions().
|
||||
|
||||
- MS.bboxMax(), use bbox.merge() instead.
|
||||
|
||||
- MS.addLetterSIDCicons(), use ms.addSIDCicons() instead.
|
||||
|
||||
- MS.addNumberSIDCicons(), use ms.addSIDCicons() instead.
|
||||
|
||||
- MS.addLetterLabelOverrides(), use ms.addLabelOverrides() instead.
|
||||
|
||||
- MS.addNumberLabelOverrides(), use ms.addLabelOverrides() instead.
|
||||
|
||||
- MS.buildingBlock() return an object instead.
|
||||
|
||||
- MS.addMarkerParts(part) use ms.addSymbolPart(part) instead.
|
||||
|
||||
- MS.getMarkerParts() use ms.getSymbolParts() instead.
|
||||
|
||||
- MS.setMarkerParts(parts) use ms.setSymbolParts(parts) instead.
|
||||
|
||||
- MS.bbox() use ms.BBox() instead. (Since it is a class...)
|
||||
|
||||
- MS.colorMode() use ms.ColorMode() instead. (Since it is a class...)
|
||||
|
||||
- MS.symbol() use ms.Symbol instead. (Since it is a class...)
|
||||
|
||||
### Removed
|
||||
|
||||
- MS.rotate() has been removed, use json drawInstruction instead.
|
||||
|
||||
- MS.scale() has been removed, use json drawInstruction instead.
|
||||
|
||||
- MS.translate() has been removed, use json drawInstruction instead.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed a bug that prevented specialHeadquarters to be drawn on Canvas output.
|
||||
|
||||
### Security
|
||||
|
||||
## 0.6.0 25 DEC 2016
|
||||
|
||||
### Added
|
||||
|
||||
- Support for outlines on symbols using properties `outlineColor` and
|
||||
`outlineWidth`.
|
||||
|
||||
- toDataURL() that returns a base 64 encoding of the SVG symbol. (See
|
||||
deprication of _asImage()_)
|
||||
|
||||
- Possibility to Add/Update existing SIDC.
|
||||
|
||||
- Possibility to Add/Update the icon parts that constructs the icons.
|
||||
|
||||
- Support for tactical point symbols in MIL-STD-2525C.
|
||||
|
||||
### Changed
|
||||
|
||||
### Deprecated
|
||||
|
||||
- _asImage()_ since it returns a data url and not an image.
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
### Security
|
||||
|
||||
## 0.5.6 14 MAY 2016
|
||||
|
||||
### Added
|
||||
|
||||
- asCanvas() is now also supported in Internet Explorer 11, this makes it
|
||||
simpler to integrate with Open Layers 3 and Cesium
|
||||
- Added back the possibility to create effects with SVG filters in custom
|
||||
extensions
|
||||
|
||||
## 0.5.5 13 JAN 2016
|
||||
|
||||
### Added
|
||||
|
||||
- Native Canvas output
|
||||
|
||||
### Changed
|
||||
|
||||
- Made several changes to the code to reduce the code size
|
||||
|
||||
## 0.5.1 24 JUL 2015
|
||||
|
||||
### Changed
|
||||
|
||||
- Minor documentation updates
|
||||
|
||||
## 0.5.0 - 20 JUL 2015
|
||||
|
||||
### Added
|
||||
|
||||
- New API
|
||||
- Much faster
|
||||
- Support point symbols from MIL-STD-2525D
|
||||
- New examples
|
||||
|
||||
## 0.4.5 - 24 NOV 2014
|
||||
|
||||
### Added
|
||||
|
||||
- Now supports MIL-STD-2525C Emergency Management Symbols
|
||||
- Speeeeed, the code now runs 3-5 times faster when you are creating a lot of
|
||||
symbols. (1000 random symbols can be created in less than 1 second, my test
|
||||
record is 0.25 seconds on a modern iMac running Safari.)
|
||||
- Added an example showing generation of 1000 random symbols.
|
||||
20
node_modules/milsymbol/CONTRIBUTING.md
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
# Contributing
|
||||
|
||||
I welcome contributions from anyone and everyone. If you want to make any major changes please open an issue first, but for small changes you can simply create a pull.
|
||||
|
||||
Before you make an contribution, please read GitHub Terms of Service: (Everything works as you think it works, but just make sure that you have the right to contribute the code you want to hand over.)
|
||||
https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license
|
||||
|
||||
## Coding standards
|
||||
|
||||
Code that you write should be validated with the included .eslintrc file, and formated with the standard settings in prettier. The recommended editor is VS Code and configuration files are included in the project.
|
||||
|
||||
https://github.com/eslint/eslint
|
||||
|
||||
https://github.com/prettier/prettier
|
||||
|
||||
During development the code can be built by running `npm run build`. This will format all code with prettier, run the tests, and build your code.
|
||||
|
||||
## Examples
|
||||
|
||||
If you would like to contribute with examples of milsymbol usage, please create them in the same structure as bl.ocks use, and include a preview.png with the size 960\*500px. https://bl.ocks.org/-/about
|
||||
21
node_modules/milsymbol/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Måns Beckman - www.spatialillusions.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
123
node_modules/milsymbol/README.md
generated
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
# Milsymbol
|
||||
|
||||
[](https://travis-ci.org/spatialillusions/milsymbol)
|
||||
|
||||
Milsymbol is a small library in pure javascript that creates military unit symbols according to MIL-STD-2525 and STANAG APP-6.
|
||||
|
||||

|
||||
|
||||
```javascript
|
||||
new ms.Symbol("sfgpewrh--mt", {
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
direction: (750 * 360) / 6400,
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
}).asSVG();
|
||||
```
|
||||
|
||||
Compared to reference figure from MIL-STD-2525C:
|
||||
|
||||

|
||||
|
||||
## Milsymbol summary
|
||||
|
||||
Milsymbol supports a lot of different options:
|
||||
|
||||
- NATO or US standards (MIL-STD-2525C, MIL-STD-2525D, STANAG APP-6 B, STANAG APP-6 D)
|
||||
- Filled/Unfilled symbols
|
||||
- Framed/Unframed symbols
|
||||
- Text fields
|
||||
- Movement indicators
|
||||
- SVG/Canvas output (using SVG or Canvas draw instructions)
|
||||
- Outlines of symbols
|
||||
- and much more...
|
||||
|
||||
For detailed descriptions of what is possible with milsymbol, see the API documentation under /docs.
|
||||
|
||||
Milsymbol can be integrated with most common javascript libraries, such as:
|
||||
|
||||
- Angular
|
||||
- Cesium
|
||||
- D3
|
||||
- LeafLet
|
||||
- Node.js
|
||||
- Open Layers 3
|
||||
- and also in ScriptEngine in Java, and QtJSEngine in C++...
|
||||
|
||||
Examples of some of the integrations are included with milsymbol.
|
||||
|
||||
You can find all documentaion and examples at:
|
||||
http://spatialillusions.com/milsymbol/
|
||||
|
||||
## Getting started
|
||||
|
||||
You can download [milsymbol from GitHub](https://github.com/spatialillusions/milsymbol "milsymbol"), or install it using npm:
|
||||
`npm install milsymbol`
|
||||
|
||||
To create your first symbol you use the symbol method to create a symbol object:
|
||||
|
||||
`ms.Symbol(SIDC,{options})`
|
||||
|
||||
To make a symbol for an infantry platoon the syntax would be:
|
||||
|
||||
`var sym = new ms.Symbol("SFG-UCI----D");`
|
||||
|
||||
And `sym` will now be a symbol object containing information about the size and draw instructions.
|
||||
|
||||
But you want something to put on your screen, and since milsymbol provides different ways to draw symbol, using SVG or Canvas, you will have to use the method that provides you with the output you want, so we use `asCanvas()` or `asSVG()` that returns a canvas element containing the symbol or a XML representation of the SVG:
|
||||
|
||||
`var canvasElement = sym.asCanvas();`
|
||||
|
||||
And if you don't want to make it step by step, you can chain it all together like this:
|
||||
|
||||
`var canvasElement = new ms.Symbol("SFG-UCI----D").asCanvas();`
|
||||
|
||||

|
||||
|
||||
Options you provided to your symbol can change the size of the symbol, define if it should be filled/unfilled, add text information, and much more; you can read more about all properties and methods in the API documentation provided with milsymbol.
|
||||
|
||||
The options can be set when you create your symbol:
|
||||
|
||||
`var sym = new ms.Symbol("SFG-UCI----D",{size:35}).asCanvas();`
|
||||
|
||||
Or they can be updated at any time using `setOptions(options)`:
|
||||
|
||||
```
|
||||
var sym = new ms.Symbol("SFG-UCI----D");
|
||||
sym.setOptions({size:35});
|
||||
var canvasElement = sym.asCanvas();
|
||||
```
|
||||
|
||||
Your symbol object will also contain information about what offset that should be used to get a correct placement, this information can be retrieved with `getAnchor()` and it will return an object with the x and y offset, you will also have access to information about what size the created symbol have and detailed information about colors used.
|
||||
|
||||
The library is built on the idea that everything used inside milsymbol should be accessable outside milsymbol so that it is easy to extend the library with custom functionallity.
|
||||
|
||||
## Technology
|
||||
|
||||
Milsymbol uses pure javascript to create SVG, Scalable Vector Graphics, and also has built in for native Canvas support.
|
||||
|
||||
- No external dependencies, just one javascript file required
|
||||
- Super fast, can create 1000 symbols in less than 25 milliseconds (SVG output)
|
||||
|
||||
The symbols are created using building blocks defined in the code and no images or fonts are used, this makes it possible to modify almost every aspect of the symbols, such as fill, frame, color, size, stroke width and easily switch between APP6 and 2525 symbology.
|
||||
|
||||
To see what is possible with milsymbol use the unit test documents in the docs folder that lists all tabels and figures from the different standards using MilSymbol. (The documents use milsymbol to render every image that you see, look into the code if you want to see how it is done.)
|
||||
|
||||
Milsymbol can easily be extended with new functionality and examples of this can be found at: https://github.com/spatialillusions/milsymbol-extensions
|
||||
|
||||
## Contact
|
||||
|
||||
Milsymbol is created and maintained by Måns Beckman
|
||||
|
||||
- http://www.spatialillusions.com to see more examples of what milsymbol can be used for
|
||||
- https://twitter.com/spatialillusion for milsymbol and mapping/military related information
|
||||
|
||||
## Licensing
|
||||
|
||||
MIT, See [LICENSE](LICENSE) for details.
|
||||
|
||||
Even if I'm giving it away for free, I don't mind if you would like to send me some cool company giveaways or unit badges. Just send me an email and and I will provide you with my address.
|
||||
18
node_modules/milsymbol/dev/README.md
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
# Development resources
|
||||
|
||||
Some minor notes and resources so that we don't forget things.
|
||||
|
||||
* octagon.svg, base template for creating icons in SVG format.
|
||||
|
||||
## Create prerelease
|
||||
|
||||
* Update `package.json`, set `version` to a prerelease version, e.g. `2.0.0-rc1`
|
||||
* Run `npm pack` to create package
|
||||
* Run `npm publish <package>.tgz --tag next` to publish the package under the `next` tag
|
||||
* Run `npm install --save package@next` to install prerelease package
|
||||
|
||||
## Create release
|
||||
|
||||
* Update `package.json`, set `version` to version, e.g. `2.0.0`
|
||||
* Run `npm publish` to publish
|
||||
* Create release on GitHub with tag `v2.0.0`
|
||||
62
node_modules/milsymbol/dev/octagon.svg
generated
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="200"
|
||||
height="200"
|
||||
viewBox="0 0 200 200"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="hexagon.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.895"
|
||||
inkscape:cx="100"
|
||||
inkscape:cy="100"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="svg2"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="751"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="953"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path
|
||||
style="opacity:1;fill:none;fill-opacity:0.503497;fill-rule:nonzero;stroke:#0000ff;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:5;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 120,60 0,80 m -40,-80 0,80 m -20,-20 80,0 m 0,-40 -80,0 M 100,50 135.355,64.6447 150,100 135.355,135.355 100,150 64.6447,135.355 50,100 64.6447,64.6447 Z"
|
||||
id="path3336"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-852.362)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
29613
node_modules/milsymbol/dist/milsymbol.development.js
generated
vendored
Normal file
27
node_modules/milsymbol/dist/milsymbol.js
generated
vendored
Normal file
1
node_modules/milsymbol/dist/milsymbol.js.map
generated
vendored
Normal file
967
node_modules/milsymbol/docs/README.md
generated
vendored
Normal file
@@ -0,0 +1,967 @@
|
||||
# Milsymbol Documentation
|
||||
|
||||
## Installing
|
||||
|
||||
You can download the latest release directly from GitHub if you want to:
|
||||
|
||||
https://github.com/spatialillusions/milsymbol/releases/latest
|
||||
|
||||
You can also get milsymbol using npm:
|
||||
|
||||
```
|
||||
npm install milsymbol --save
|
||||
```
|
||||
|
||||
AMD, CommonJS, and vanilla environments are supported. The module is always
|
||||
named 'milsymbol' and in vanilla, a 'ms' global is exported:
|
||||
|
||||
```html
|
||||
<script src="dist/milsymbol.js"></script>
|
||||
<script>
|
||||
var symbol = new ms.Symbol("SFG-UCI----D", { size: 30 });
|
||||
</script>
|
||||
```
|
||||
|
||||
In a framework like [Dojo](https://dojotoolkit.org) you can load milsymbol like
|
||||
this:
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
<script src="dojo/dojo.js" data-dojo-config="async: true"></script>
|
||||
<script src="app/milsymbol.js"></script>
|
||||
<script>
|
||||
require(["milsymbol"], function(ms) {
|
||||
var symbol = new ms.Symbol("SFG-UCI----D", { size: 30 });
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
This way of loading milsymbol makes it possible to use Dojo from an external
|
||||
source, like js.arcgis.com.
|
||||
|
||||
If you only are using it with local sources or if you are uploading it to ArcGIS
|
||||
Web AppBuilder, you can rebuild it by running `npm run build-amd`, and now you
|
||||
can `require(["app/milsymbol"].....` if _milsymbol.js_ is placed in your app
|
||||
folder. See more about building under [Building milsymbol](#building-milsymbol).
|
||||
|
||||
# Creating military unit symbols
|
||||
|
||||
Each symbol created with milsymbol is its own object and the properties of the
|
||||
object can be updated or added after that the symbol object is created. The
|
||||
symbol object also has methods to provide the symbol in different formats and
|
||||
to provide information about the created symbol.
|
||||
|
||||
All functionality in milsymbol is normally found under the `ms` namespace, but
|
||||
if you have imported milsymbol to another variable, you will have to use that
|
||||
instead of `ms`.
|
||||
|
||||
## ms.Symbol(_arg1, arg2 ... argN_)
|
||||
|
||||
Initiates a new symbol object, where arg1-argN are options objects. If you
|
||||
provide an argument that isn't an object we will assume that it is the SIDC for
|
||||
the symbol.
|
||||
|
||||
Even if options can be provided or updated after the symbol object is created,
|
||||
the performance will be better if you provide them directly when you create the
|
||||
symbol, or to provide no arguments at all, this is because every time you update
|
||||
some options the symbol will automatically be updated.
|
||||
|
||||
```javascript
|
||||
var symbol = new ms.Symbol("SFG-UCI----D", { size: 30 });
|
||||
```
|
||||
|
||||
Once you have initiated your symbol, you can use different methods to request
|
||||
rendering of the symbol or get information about the symbol. It is also
|
||||
possible to chain methods directly to the initiation:
|
||||
|
||||
```javascript
|
||||
var symbol = new ms.Symbol("SFG-UCI----D", { size: 30 }).asSVG();
|
||||
```
|
||||
|
||||
**General options**
|
||||
|
||||
It is possible to add any custom options to your options object as well as the
|
||||
options listed below.
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
| ------ | ------ | ------- | ----------------------- |
|
||||
| sidc | String | '' | The SIDC for the symbol |
|
||||
|
||||
**Modifier options**
|
||||
|
||||
The following options are modifiers, text or graphical, that are defined in the
|
||||
standard documents.
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
| --------------------- | ------ | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| additionalInformation | String | '' | A text modifier for units, equipment, and installations; content is implementation specific. <br/>**Field H** _20 Characters_ |
|
||||
| altitudeDepth | String | '' | A text modifier for units, equipment, and installations, that displays either altitude flight level, depth for submerged objects; or height of equipment or structures on the ground. <br/>**Field X** _14 Characters_ |
|
||||
| combatEffectiveness | String | '' | A text modifier for units and installations that indicates unit effectiveness or installation capability. <br/>**Field K** _5 Characters_ |
|
||||
| commonIdentifier | String | '' | Example: "Hawk" for Hawk SAM system. <br/>**Field AF** |
|
||||
| country | String | '' | Three letter representing the country. <br/>**Field AC** |
|
||||
| direction | Number | undefined | At the moment all directions should be in degrees and not in mils. Set to an undefined to remove the direction arrow. <br/>**Field Q** |
|
||||
| dtg | String | '' | A text modifier for units, equipment, and installations that displays DTG format: DDHHMMSSZMONYYYY or "O/O" for on order. <br/>**Field W** _16 Characters_ |
|
||||
| engagementBar | String | '' | Engagement bar text, shall be arranged as follows: A:BBB-CC. <br/>**Field AO** |
|
||||
| engagementType | String | '' | Engagement bar type, should be one of the following "TARGET", "NON-TARGET", or "EXPIRED" |
|
||||
| equipmentTeardownTime | String | '' | Equipment teardown time in minutes. <br/>**Field AE** |
|
||||
| evaluationRating | String | '' | A text modifier for units, equipment, and installations that consists of a one-letter reliability rating and a one-number credibility rating.<br/>**Field J** _2 Characters_ |
|
||||
| guardedUnit | String | '' | During ballistic missile defence, some tracks are designated as guarded by a particular unit. <br/>**Field AQ** _2 Characters_ |
|
||||
| headquartersElement | String | '' | Example: Tactical Operations Centre put as 'TOC'. <br/>**Field AH** |
|
||||
| higherFormation | String | '' | A text modifier for units that indicates number or title of higher echelon command (corps are designated by Roman numerals). <br/>**Field M** _21 Characters_ |
|
||||
| hostile | String | '' | A text modifier for equipment; letters "ENY" denote hostile symbols. <br/>**Field N** _3 Characters_ |
|
||||
| iffSif | String | '' | A text modifier displaying IFF/SIF Identification modes and codes. <br/>**Field P** _5 Characters_ |
|
||||
| location | String | '' | A text modifier for units, equipment, and installations that displays a symbol's location in degrees, minutes, and seconds (or in UTM or other applicable display format). <br/>**Field Y** _19 Characters_ |
|
||||
| platformType | String | '' | "ELNOT" or "CENOT" <br/>**Field AD** |
|
||||
| quantity | String | '' | A text modifier in an equipment symbol that identifies the number of items present. <br/>**Field C** or **Field R** _9 Characters_ |
|
||||
| reinforcedReduced | String | '' | A text modifier in a unit symbol that displays (+) for reinforced, (-) for reduced, (±) reinforced and reduced. <br/>**Field F** _3 Characters_ |
|
||||
| sigint | String | '' | M = Mobile, S = Static, or U = Uncertain. <br/>**Field R2** |
|
||||
| specialDesignator | String | '' | Special track designators, such as Non-Real Time (NRT) and Tactically Significant (SIG) tracks, are denoted here.<br/>**Field AR** _3 Characters_ |
|
||||
| signatureEquipment | String | '' | A text modifier for hostile equipment; "!" indicates detectable electronic signatures. <br/>**Field L** _1 Character_ |
|
||||
| specialHeadquarters | String | '' | A text modifier for units; indicator is contained inside the frame; contains the name of the special C2 Headquarters. <br/>**Field AA** _9 Characters_ |
|
||||
| speed | String | '' | A text modifier for units and equipment that displays velocity as set forth in MIL-STD-6040. <br/>**Field Z** _8 Characters_ |
|
||||
| speedLeader | Number | 0 | This is the length of the speed leader in pixels, this will be independet of the size of the symbol. |
|
||||
| staffComments | String | '' | A text modifier for units, equipment and installations; content is implementation specific. <br/>**Field G** _20 Characters_ |
|
||||
| targetNumber | String | '' | A six character text modifier used in Fire Support operations to uniquely designate targets in accordance with STANAG 2147, where characters 1 and 2 are alphabetic, and characters 3-6 are numeric: AANNNN. <br/>**Field AP** _6 Characters_ |
|
||||
| type | String | '' | A text modifier for equipment that indicates types of equipment. <br/>**Field V** _24 Characters_ |
|
||||
| uniqueDesignation | String | '' | A text modifier for units, equipment, and installations that uniquely identifies a particular symbol or track number. Identifies acquisitions number when used with SIGINT symbology.<br/>**Field T** _21 Characters_ |
|
||||
|
||||
**Style options**
|
||||
|
||||
The following options are style options that changes the look of the symbol in
|
||||
different ways.
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
| -------------------- | ------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| alternateMedal | Boolean | false | MIL-STD-2525D lets you choose between MEDAL and alternate MEDAL icons for mine warfare symbols, the default in milsymbol is using MEDAL icons, but you can change this using setting this property to true. |
|
||||
| civilianColor | Boolean | true | 2525C specifics purple as an optional color for civilian symbols. Of course we like color so we set this as default. |
|
||||
| colorMode | ColorMode or String | 'Light' | This is the option for setting what Color object to use for the fill of the symbols. It can be set to a Color object, or a string representing the name of a registered Color object. You can use ms.ColorMode to create a new color mode, or ms.getColorMode to get an existing color mode. **Note that the string is not a single color, it is a name of a registered color mode**, by default "Light", "Medium", and "Dark" are registered color modes. |
|
||||
| fill | Boolean | true | Should your symbol be filled with color. |
|
||||
| fillColor | String | "" | Override the fill color of the symbol with any color string. |
|
||||
| fillOpacity | Number | 1 | The opacity of the symbol fill color. |
|
||||
| fontfamily | String | 'Arial' | Changes the font family for all texts surrounding the icon. |
|
||||
| frame | Boolean | true | Should your symbol have a frame. All symbols support to be unframed, not just the ones specified in 2525B. |
|
||||
| frameColor | ColorMode | false | Changes the color of the frame of the symbol |
|
||||
| hqStaffLength | Number | undefined | Overrides the global Headquarters staff length |
|
||||
| icon | Boolean | true | Should your symbol have an icon. |
|
||||
| infoBackground | ColorMode or String | "" | Changes the color of the information background |
|
||||
| infoBackgroundFrame | ColorMode or String | "" | Changes the color of the frame of the information background |
|
||||
| iconColor | ColorMode | false | Changes the color of the icon of the symbol |
|
||||
| infoColor | ColorMode or String | Same color as the frame outline | This will be used for texts in the text fields surrounding the symbol. It is a ColorMode, or a string color that is either a keyword or a numerical RGB specification. |
|
||||
| infoFields | Boolean | true | If you have set some text fields and direction but don't want them to be displayed you can set infoFields to false. This makes it possible to initiate the object with all information you got but not display it. |
|
||||
| infoOutlineColor | String or `false` | rgb(239, 239, 239) | The color of the outline that should be drawn around text fields, or `false` to use the value of `outlineColor`. |
|
||||
| infoOutlineWidth | Number or `false` | false | The width of the outline that should be drawn around text fields, or `false` to use the value of `outlineWidth`. |
|
||||
| infoSize | Number | 40 | The size of the text fields surrounding the symbol. This is relative to the size of the symbol, so you can consider 40 to be 40% of the default size that is 100. |
|
||||
| monoColor | String | '' | A color that is either a keyword or a numerical RGB specification. If you set this the symbol will be monochrome and unfilled using the color provided. |
|
||||
| outlineColor | ColorMode or String | rgb(239, 239, 239) | A color that is either a keyword or a numerical RGB specification. The color of the outline of the symbol, if any. Defaults to an off-white color. |
|
||||
| outlineWidth | Number | 0 | The width of the outline that should be drawn around all symbol parts, if any. |
|
||||
| padding | Number | 0 | Milsymbol usually tries to fit the bounds for the symbol as snug as possible, but in some cases you want to add some extra padding around your symbol, then simply set this option to any number. |
|
||||
| size | Number | 100 | The L value for your symbol, where the L value is the width of the icon octagon. |
|
||||
| simpleStatusModifier | Boolean | false | Should the symbol use simplified status modifiers, this is the default for unfilled symbols and can be forced for filled symbols using this option. |
|
||||
| standard | String | '' | This is a way to override the default standard set for milsymbol. You can set this variable to "2525" or "APP6" depending on what standard you prefer. |
|
||||
| square | Boolean | false | Should the symbol be square with the insertion point in the center. |
|
||||
| strokeWidth | Number | 3 | The stroke width of the symbol. |
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object this
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### asCanvas(_factor_)
|
||||
|
||||
Returns the symbol as a Canvas Element. It is possible to provide a resolution
|
||||
factor if a symbol with a higher resolution is wanted, this won't affect
|
||||
numbers reported by `getSize()`, `getAnchor()` or `getOctagonAnchor()`.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Canvas Element
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### asDOM()
|
||||
|
||||
Returns the symbol as a SVG DOM Element.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
DOM Element
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### asSVG()
|
||||
|
||||
Returns the symbol as a SVG string.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
String;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### getAnchor()
|
||||
|
||||
Getting the anchor point where the symbol should be inserted measured from the top
|
||||
left corner of the symbol.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {x:Number, y:Number}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### getColors()
|
||||
|
||||
Gets the colors used for this symbol.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
black: ColorMode, // Black parts of the symbol.
|
||||
fillColor: ColorMode, // Symbol fill color.
|
||||
frameColor: ColorMode, // Symbol frame color.
|
||||
iconColor: ColorMode, // Icon color.
|
||||
iconFillColor: ColorMode, // Icon fill color.
|
||||
none: ColorMode, // Transparent parts of the symbol.
|
||||
white: ColorMode // White parts of the symbol.
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### getMetadata()
|
||||
|
||||
Gets all metadata that is computed for the SIDC of this symbol.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
activity: Boolean, // Is it an Activity
|
||||
affiliation: String, // Affiliation it is shown as (Friend/Hostile...)
|
||||
baseAffilation: String, // Affiliation it belongs to (Friend/Hostile...)
|
||||
baseDimension: String, // Dimension it belongs to (Air/Ground...)
|
||||
baseGeometry: Object, // Geometry is a combination of dimension and affiliation (AirFriend/GroundHostile...)
|
||||
civilian: Boolean, // Is it Civilian
|
||||
condition: String, // What condition is it in
|
||||
context: String, // Context of the symbol (Reality/Exercise...)
|
||||
dimension: String, // Dimension it is shown as (Air/Ground...) for example Ground Equipment is shown with the same shape as Sea.
|
||||
dimensionUnknown: Boolean, // Is the dimension unknown
|
||||
echelon: String, //What echelon (Platoon/Company...)
|
||||
faker: Boolean, // Is it a Faker
|
||||
fenintDummy: Boolean, // Is it a feint/dummy
|
||||
fill: Boolean, // Standard says it should be filled
|
||||
frame: Boolean, // Standard says it should be framed
|
||||
functionid: String, // Part of SIDC referring to the icon.
|
||||
headquarters: Boolean, // Is it a Headquarters
|
||||
installation: Boolean, // Is it an Instalation
|
||||
joker: Boolean, // Is it a Joker
|
||||
mobility: String, // What mobility (Tracked/Sled...)
|
||||
notpresent: String, // Is it Anticipated or Pending
|
||||
numberSIDC: Boolean, // Is the SIDC number based
|
||||
space: Boolean, // Is it in Space
|
||||
taskForce: Boolean // Is it a task force
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### getOptions(_includeStyle_)
|
||||
|
||||
Get the options that are set on the symbol. If includeStyle is set to `false`
|
||||
style information will not be included in the returned options if it is set to
|
||||
`true` or left out style information will be included in the returned options.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### getOctagonAnchor()
|
||||
|
||||
Getting the center of the symbol octagon measured from the top left corner of
|
||||
the symbol.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {x:Number, y:Number}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### getSize()
|
||||
|
||||
Gets the size of the current symbol.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {width:Number, height:Number}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### getStyle()
|
||||
|
||||
Gets the style part of the symbol options of the current symbol.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### isValid(_extended_)
|
||||
|
||||
If extended is set to `true` it will return an object with the validity of
|
||||
different parts of the symbol code, if extended is omitted or set to false it
|
||||
will return a boolean representing if it was possible to find an icon for the
|
||||
provided SIDC or not. In the future, this might validate other parameters as
|
||||
well.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Boolean or Object
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### setOptions(_arg1, arg2 ... argN_)
|
||||
|
||||
This sets the options for a symbol and updates the symbol, the arguments are
|
||||
options Objects in the same way as when you create a new symbol, where an
|
||||
updated SIDC can be included in the options object (`sidc: String`). If
|
||||
setOptions is called without an options object, the symbol is simply updated.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
this;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### toDataURL()
|
||||
|
||||
Returns the SVG of a symbol as a base 64 encoded string, this can be useful in
|
||||
some cases where you want to assign the output as a source for an image element.
|
||||
If you want a PNG as a base 64 encoded string, simply call
|
||||
`.asCanvas().toDataURL()`.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
String;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Developing milsymbol
|
||||
|
||||
This describes more advanced development with milsymbol, this includes adding
|
||||
your own symbols, overwriting existing icons and in other ways modifying the
|
||||
standard output from milsymbol.
|
||||
|
||||
The base concept for milsymbol has been that everything that is used internally
|
||||
to build up the symbols should be possible to modify, this makes it possible to
|
||||
do everything from changing colors to adding completely new parts to the
|
||||
generated symbols.
|
||||
|
||||
All the following code can be used to inject functionality into milsymbol
|
||||
externally, but you can also choose to build your own version of milsymbol.
|
||||
|
||||
## Building milsymbol
|
||||
|
||||
Milsymbol is built using [webpack](https://webpack.js.org), and if you installed
|
||||
milsymbol npm everything you need to build milsymbol should have been installed
|
||||
as well since they are listed as devDependencies in package.json, if you don't
|
||||
have npm installed, you will have to install it to build milsymbol.
|
||||
|
||||
The structure of the code is that the webpack config (_webpack.config.js_) is
|
||||
located in the root directory, and the entry point (_index.js_) and all other
|
||||
source code is under `/src`.
|
||||
|
||||
Once you have changed the parts of the code that you want to change, you simply
|
||||
run:
|
||||
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
|
||||
Webpack will then build milsymbol and minify the output into `/dist`.
|
||||
|
||||
It is also possible to build an un-minified version of milsymbol by running:
|
||||
|
||||
```
|
||||
npm run build-dev
|
||||
```
|
||||
|
||||
And finally tests are located in the `/test` and you can run the tests by
|
||||
running:
|
||||
|
||||
```
|
||||
npm run test
|
||||
```
|
||||
|
||||
## Draw instruction
|
||||
|
||||
The symbols in milsymbol are drawn using JSON draw instructions
|
||||
`drawInstruction`, these are then converted into Canvas draw instructions, or
|
||||
SVG output.
|
||||
|
||||
If you are creating your own JSON geometries for usage in milsymbol, they should
|
||||
have the origo at 100,100, and the hight and width of the icon octagon is 100.
|
||||
There is a sample SVG representing the symbol octagon available in the `dev
|
||||
folder.
|
||||
|
||||
The following different kinds of draw instructions can be used in milsymbol:
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
type: 'path',
|
||||
d: String, // SVG path data
|
||||
fill: String, // Fill color or set to false if none
|
||||
fillopacity: Number, // Fill opacity {Optional}
|
||||
stroke: String, // Stroke color or set to false if none
|
||||
strokedasharray: String, // {Optional}
|
||||
strokewidth: Number, // Width of the stroke {Optional}
|
||||
}
|
||||
```
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
type: 'circle',
|
||||
cx: Number, // Center x
|
||||
cy: Number, // Center y
|
||||
r: Number, // Radius
|
||||
fill: String, // Fill color or set to false if none
|
||||
fillopacity: Number, // Fill opacity {Optional}
|
||||
stroke: String, // Stroke color or set to false if none
|
||||
strokedasharray: String, // {Optional}
|
||||
strokewidth: Number, // Width of the stroke {Optional}
|
||||
}
|
||||
```
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
type: 'text',
|
||||
x: Number,
|
||||
y: Number,
|
||||
textanchor: String,
|
||||
fontsize: Number,
|
||||
fontfamily: String,
|
||||
fontweight: String,
|
||||
fill: String, // Fill color or set to false if none
|
||||
fillopacity: Number, // Fill opacity {Optional}
|
||||
stroke: String, // Stroke color or set to false if none
|
||||
strokedasharray: String, // {Optional}
|
||||
strokewidth: Number, // Width of the stroke {Optional}
|
||||
}
|
||||
```
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
type: 'translate',
|
||||
x: Number, // Move x
|
||||
y: Number, // Move y
|
||||
draw: drawInstruction
|
||||
}
|
||||
```
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
type: 'rotate',
|
||||
degree: Number, // Rotation angle
|
||||
x: Number, // Rotate center x
|
||||
y: Number, // Rotate center y
|
||||
draw: drawInstruction
|
||||
}
|
||||
```
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
type: 'scale',
|
||||
factor: Number, // Factor to scale
|
||||
draw: drawInstruction
|
||||
}
|
||||
```
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
type: 'svg',
|
||||
svg: String // Full SVG XML
|
||||
}
|
||||
```
|
||||
|
||||
Several draw instructions can be grouped together in an Array to for a more
|
||||
complex part of a symbol, this is also a `drawInstruction` and the code will
|
||||
handle both Objects and Arrays.
|
||||
|
||||
```javascript
|
||||
Array [
|
||||
drawInstruction,
|
||||
drawInstruction,
|
||||
drawInstruction,
|
||||
drawInstruction,
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ms.BBox({box})
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
x1: Number, // Left coordinate {Optional}
|
||||
y1: Number, // Top coordinate {Optional}
|
||||
x2: Number, // Right coordinate {Optional}
|
||||
y2: Number, // Bottom coordinate {Optional}
|
||||
}
|
||||
```
|
||||
|
||||
Creates a bounding box Object. It is initiated with an optional object. Values
|
||||
that are omitted will default to 100, and if an object isn't provided all values
|
||||
will default to 100.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
x1: Number, // Left coordinate
|
||||
y1: Number, // Top coordinate
|
||||
x2: Number, // Right coordinate
|
||||
y2: Number, // Bottom coordinate
|
||||
width: Function, // Returns box width
|
||||
height: Function, // Returns box height
|
||||
merge(box): Function // Merges one box with another and returns the original box
|
||||
}
|
||||
```
|
||||
|
||||
## ms.ColorMode(civilian, friend, hostile, neutral, unknown)
|
||||
|
||||
```javascript
|
||||
civilian: String,
|
||||
friend: String,
|
||||
hostile: String,
|
||||
neutral: String,
|
||||
unknown: String,
|
||||
```
|
||||
|
||||
Creates a ColorMode Object with colors used for different affiliations.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
Civilian: String,
|
||||
Friend: String,
|
||||
Hostile: String,
|
||||
Neutral: String,
|
||||
Unknown: String
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ms.addIconParts(iconFunction)
|
||||
|
||||
```javascript
|
||||
iconFunction: Function;
|
||||
```
|
||||
|
||||
Adds an icon function to milsymbol. All icons on the symbols in milsymbol are
|
||||
built by different icon parts, it can be one for Infantry and one for Armor, add
|
||||
them together and you will have the icon for Armored Infantry. By reusing icon
|
||||
parts as much as possible the size of milsymbol is reduced.
|
||||
|
||||
If you want to override built-in icon parts or add new to use with custom SIDC,
|
||||
you can do this by adding an icon function.
|
||||
|
||||
Example:
|
||||
|
||||
```javascript
|
||||
ms.addIconParts(function(
|
||||
iconParts,
|
||||
metadata,
|
||||
colors,
|
||||
std2525,
|
||||
monoColor,
|
||||
alternateMedal
|
||||
) {
|
||||
/*
|
||||
iconParts: Object - The existing object of icon parts
|
||||
metadata: Object - properties object
|
||||
colors: Object - color object
|
||||
std2525: Boolean - Is it 2525 then true, otherwise false
|
||||
alternateMedal: Boolean - true/false for sea mine stuff
|
||||
*/
|
||||
|
||||
// Adding a custom part for tactical graphics
|
||||
iconParts["TP.HARBOR"] = {
|
||||
type: "path",
|
||||
fill: false,
|
||||
d: "M 80,140 50,60 150,60 120,140"
|
||||
};
|
||||
|
||||
/*
|
||||
Since we are modifying directly to the existing object of icon parts,
|
||||
we don't have to return anything.
|
||||
*/
|
||||
});
|
||||
```
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object ms
|
||||
```
|
||||
|
||||
## ms.addLabelOverrides(labelFunction, type)
|
||||
|
||||
```javascript
|
||||
labelFunction: Function,
|
||||
type: String // 'letter' or 'number' depending on the type of the SIDC
|
||||
```
|
||||
|
||||
Adds label overrides to milsymbol. If you have some symbols that you want to
|
||||
have labels that differ from how ordinary symbols are labeled, such as tactical
|
||||
graphics, you can add label override functions that place the labels
|
||||
differently.
|
||||
|
||||
Example:
|
||||
|
||||
```javascript
|
||||
ms.addLabelOverrides(
|
||||
function tacticalPoints(sidc) {
|
||||
/*
|
||||
sidc: Object - The existing object of label overrides
|
||||
*/
|
||||
|
||||
/*
|
||||
Creates an override for SIDC 'G-G-GPPK--', each option
|
||||
listed will be applied to the text drawInstruction
|
||||
*/
|
||||
sidc["G-G-GPPK--"] = {
|
||||
additionalInformation: {
|
||||
stroke: false,
|
||||
textanchor: "middle",
|
||||
x: 100,
|
||||
y: -70,
|
||||
fontsize: 40
|
||||
},
|
||||
hostile: {
|
||||
stroke: false,
|
||||
textanchor: "start",
|
||||
x: 150,
|
||||
y: 45,
|
||||
fontsize: 40
|
||||
},
|
||||
uniqueDesignation: {
|
||||
stroke: false,
|
||||
textanchor: "start",
|
||||
x: 150,
|
||||
y: 0,
|
||||
fontsize: 80
|
||||
},
|
||||
dtg: { stroke: false, textanchor: "end", x: 50, y: -30, fontsize: 40 },
|
||||
dtg1: { stroke: false, textanchor: "end", x: 50, y: 10, fontsize: 40 }
|
||||
};
|
||||
|
||||
/*
|
||||
Since we are modifying directly to the existing object of overrides,
|
||||
we don't have to return anything.
|
||||
*/
|
||||
},
|
||||
"letter" //Setting letter as SIDC type
|
||||
);
|
||||
```
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object ms
|
||||
```
|
||||
|
||||
## ms.addSIDCicons(sidcFunction, type)
|
||||
|
||||
```javascript
|
||||
sidcFunction: Function,
|
||||
type: String // 'letter' or 'number' depending on the type on the SIDC
|
||||
```
|
||||
|
||||
Adds a function for creating icons representing different SIDCs. It is possible
|
||||
to add custom SIDC, or to modify existing SIDC by adding a custom SIDC function.
|
||||
|
||||
Example:
|
||||
|
||||
```javascript
|
||||
ms.addSIDCicons(
|
||||
function tacticalPoints(sidc, bbox, icnParts, std2525) {
|
||||
/*
|
||||
sidc: Object - The existing object of SIDC
|
||||
bbox: Object - The existing object of Bounding Boxes for SIDC
|
||||
iconParts: Object - The existing object of icon parts
|
||||
std2525: Boolean - Is it 2525 then true, otherwise false
|
||||
*/
|
||||
|
||||
// Creating a new SIDC
|
||||
sidc["G-T-D-----"] = icn["TP.DESTROY"];
|
||||
bbox["G-T-D-----"] = { x1: 0, x2: 200, y1: 40, y2: 160 };
|
||||
|
||||
// If we don't provide a bounding box, it will be set to the bounds of the icon octagon
|
||||
sidc["G-T-I-----"] = icn["TP.INTERDICT"];
|
||||
|
||||
/*
|
||||
Since we are modifying directly to the existing object of SIDCs,
|
||||
we don't have to return anything.
|
||||
*/
|
||||
},
|
||||
"letter" //Setting letter as SIDC type
|
||||
);
|
||||
```
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object ms
|
||||
```
|
||||
|
||||
## ms.addSymbolPart(part)
|
||||
|
||||
```javascript
|
||||
part: function
|
||||
```
|
||||
|
||||
Adds a new symbol function to milsymbol. A symbol function is a function that
|
||||
returns an Object with two drawInstruction and one bounding box, like this:
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
pre: drawInstruction, // This is to be drawn before anything else
|
||||
post: drawInstruction, // This is to be drawn after anything else
|
||||
bbox: bbox // The bounding box of the added drawInstructions
|
||||
}
|
||||
```
|
||||
|
||||
By inserting a pre and a post drawInstruction, we are able to draw parts of
|
||||
the symbol that requires information, such as bounding boxes, previously drawn,
|
||||
but to draw them before the other parts are drawn. It's quite clever, trust me.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object ms
|
||||
```
|
||||
|
||||
## ms.getColorMode(mode)
|
||||
|
||||
```javascript
|
||||
mode: String; // Name of a color mode registered with setColorMode
|
||||
```
|
||||
|
||||
Gets a color mode that has been registered with `setColorMode`. When milsymbol is
|
||||
initiated the following color modes are registered automatically:
|
||||
|
||||
| Color mode name | Description |
|
||||
| --------------- | ------------------------------------------------- |
|
||||
| Light | Light fill colors. |
|
||||
| Medium | Medium fill colors. |
|
||||
| Dark | Dark fill colors. |
|
||||
| FrameColor | Frame colors for unfilled symbols. |
|
||||
| IconColor | Icon colors for unfilled and unframed symbols. |
|
||||
| Black | This is all black. |
|
||||
| White | This is all white. |
|
||||
| OffWhite | This is off white, used for white parts of icons. |
|
||||
| None | This is no color, used to turn colors off. |
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
Civilian: String,
|
||||
Friend: String,
|
||||
Hostile: String,
|
||||
Neutral: String,
|
||||
Unknown: String
|
||||
}
|
||||
```
|
||||
|
||||
## ms.getDashArrays()
|
||||
|
||||
Gets the different dash arrays used for dashed lines.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
pending: String, // The value for the stroke-dasharray used for symbols with a pending status.
|
||||
anticipated: String, // The value for the stroke-dasharray used for symbols with an anticipated status.
|
||||
feintDummy: String // The value for the stroke-dasharray used for the feint/dummy modifier.
|
||||
}
|
||||
```
|
||||
|
||||
## ms.getHqStaffLength()
|
||||
|
||||
Gets the length of the HQ staff used for HQ symbols.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Number;
|
||||
```
|
||||
|
||||
## ms.getSymbolParts()
|
||||
|
||||
This gets all symbol functions that have been inserted by `ms.addSymbolPart`.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Array [
|
||||
symbolFunction,
|
||||
symbolFunction,
|
||||
symbolFunction,
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
## ms.getVersion()
|
||||
|
||||
Gets the version of milsymbol.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
String;
|
||||
```
|
||||
|
||||
## ms.outline(drawInstruction, outline, stroke, color)
|
||||
|
||||
```javascript
|
||||
drawInstruction: drawInstruction,
|
||||
outline: Number,
|
||||
stroke: Number,
|
||||
color: String
|
||||
```
|
||||
|
||||
Takes the drawInstruction in the input and modifies them so that they only are
|
||||
stroked.
|
||||
|
||||
Outline is the outline width, stroke is the original stroke width, and color is
|
||||
the color the outline should have.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Array or Object
|
||||
```
|
||||
|
||||
## ms.setColorMode(name, colormode)
|
||||
|
||||
```javascript
|
||||
name: String,
|
||||
colormode: ColorMode
|
||||
```
|
||||
|
||||
Register a ColorMode with a name or override an existing ColorMode.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object ColorMode
|
||||
```
|
||||
|
||||
## ms.setDashArrays(pending, anticipated, feintDummy)
|
||||
|
||||
```javascript
|
||||
pending: String, // The value for the stroke-dasharray used for symbols with a pending status.
|
||||
anticipated: String, // The value for the stroke-dasharray used for symbols with an anticipated status.
|
||||
feintDummy: String // The value for the stroke-dasharray used for the feint/dummy modifier.
|
||||
```
|
||||
|
||||
Sets the dash arrays used for dashed lines.
|
||||
|
||||
Example:
|
||||
|
||||
```javascript
|
||||
var dashObj = ms.setDashArrays("4,4", "8,12", "8,8");
|
||||
```
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object {
|
||||
pending: String,
|
||||
anticipated: String,
|
||||
feintDummy: String
|
||||
}
|
||||
```
|
||||
|
||||
## ms.setHqStaffLength(staff_length)
|
||||
|
||||
```javascript
|
||||
staf_length: Number;
|
||||
```
|
||||
|
||||
Sets the length of the HQ staff used for HQ symbols.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Number;
|
||||
```
|
||||
|
||||
## ms.setStandard(standard)
|
||||
|
||||
```javascript
|
||||
standard: String; // '2525' or 'APP6'
|
||||
```
|
||||
|
||||
This sets the preferred standard.
|
||||
|
||||
Sometimes APP6 and 2525 differ in symbols. Default we are using 2525 symbology,
|
||||
but you can select to follow APP6 instead. (All possible SIDC will have some
|
||||
kind of symbol no matter setting, so you will always get a symbol.)
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Boolean; // true if the standard was set, otherwise false
|
||||
```
|
||||
|
||||
## ms.setSymbolParts(parts)
|
||||
|
||||
```javascript
|
||||
parts: Array; // Array of symbolFunctions
|
||||
```
|
||||
|
||||
Replaces the current symbol functions with an Array of symbol functions. This
|
||||
can be used to modify the symbol functions that are built into milsymbol.
|
||||
|
||||
**Returns**
|
||||
|
||||
```javascript
|
||||
Object ms
|
||||
```
|
||||
BIN
node_modules/milsymbol/docs/images/figure13.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 25 KiB |
1
node_modules/milsymbol/docs/images/figure13.svg
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny" width="385.9333333333333" height="98.7" viewBox="-405.33333333333337 -14 1102.6666666666665 282"><g transform="translate(0,160)" stroke-width="4" stroke="black" fill="none"><path d="M 50,1 l 100,0"></path><circle cx="55" cy="8" r="8"></circle><circle cx="70" cy="8" r="8"></circle><circle cx="130" cy="8" r="8"></circle><circle cx="145" cy="8" r="8"></circle></g><circle cx="100" cy="100" r="60" stroke-width="4" stroke="black" fill="rgb(128,224,255)" fill-opacity="1"></circle><g transform="translate(0,160)"><g transform="rotate(42.1875,100,100)"><path d="M100,100 l0,-75 -5,3 5,-15 5,15 -5,-3" stroke-width="4" stroke="black" fill="black"></path></g></g><path d="M 100,160l0,100" stroke-width="4" stroke="black" fill="black"></path><text x="100" y="30" text-anchor="middle" font-size="40" font-family="Arial" stroke-width="4" stroke="none" fill="black">200</text><text x="20" y="40" text-anchor="end" font-size="40" font-family="Arial" stroke-width="4" stroke="none" fill="black">30140000ZSEP97</text><text x="20" y="80" text-anchor="end" font-size="40" font-family="Arial" stroke-width="4" stroke="none" fill="black">0900000.0E570306.0N</text><text x="20" y="120" text-anchor="end" font-size="40" font-family="Arial" stroke-width="4" stroke="none" fill="black">MACHINE GUN</text><text x="180" y="80" text-anchor="start" font-size="40" font-family="Arial" stroke-width="4" stroke="none" fill="black">FOR REINFORCEMENTS</text><text x="180" y="120" text-anchor="start" font-size="40" font-family="Arial" stroke-width="4" stroke="none" fill="black">ADDED SUPPORT FOR JJ</text><path d="m 100,60 0,80 M 85,75 100,60 115,75" stroke-width="4" stroke="black" fill="none"></path><path d="m 85,110 30,0 m -30,-20 30,0 m -30,10 30,0" stroke-width="4" stroke="black" fill="none"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
BIN
node_modules/milsymbol/docs/images/infantry-platoon.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
node_modules/milsymbol/docs/images/milsymbol.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 69 KiB |
127
node_modules/milsymbol/docs/letter-sidc.js
generated
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
var size = 70;
|
||||
ms._autoValidation = true;
|
||||
|
||||
function generatenavigation() {
|
||||
var i = 0;
|
||||
var indexoftables = "";
|
||||
document.querySelectorAll("h2, h3").forEach(function(d) {
|
||||
i++;
|
||||
d.id = "heading-" + i;
|
||||
indexoftables +=
|
||||
'<a href="#heading-' +
|
||||
i +
|
||||
'" class="index-' +
|
||||
d.tagName.toLowerCase() +
|
||||
'">' +
|
||||
d.textContent +
|
||||
"</a><br>\n";
|
||||
});
|
||||
document.getElementById("indexoftables").innerHTML = indexoftables;
|
||||
|
||||
i = 0;
|
||||
var indexoffigures = "";
|
||||
document.querySelectorAll("figure").forEach(function(d) {
|
||||
i++;
|
||||
d.id = "figure-" + i;
|
||||
d = d.getElementsByTagName("figcaption").item(0);
|
||||
indexoffigures +=
|
||||
'<a href="#figure-' + i + '">' + d.textContent + "</a><br>\n";
|
||||
});
|
||||
document.getElementById("indexoffigures").innerHTML = indexoffigures;
|
||||
}
|
||||
|
||||
function remarks(remark) {
|
||||
if (remark == "Wrong SIDC in standard") return { monoColor: "Red" };
|
||||
if (["N/A"].indexOf(remark) != -1) {
|
||||
return { monoColor: "Silver" };
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
function labels(icon) {
|
||||
if (icon.hierarchy.split(".")[0] == "TACGRP") {
|
||||
return {
|
||||
infoColor: "Silver",
|
||||
additionalInformation: "H",
|
||||
additionalInformation1: "H1",
|
||||
hostile: "N",
|
||||
uniqueDesignation: "T",
|
||||
dtg: "W",
|
||||
dtg1: "W1",
|
||||
altitudeDepth: "X"
|
||||
};
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
function renderSymbolSet(symbolset) {
|
||||
var output = "";
|
||||
var i;
|
||||
|
||||
output += "<h2>" + symbolset.name + "</h2>";
|
||||
output += "<table border=1><thead><tr><th>Description</th><th>Icon</th>";
|
||||
|
||||
output += "<th>Remarks</th></tr></thead>";
|
||||
|
||||
for (i = 0; i < symbolset.mainIcon.length; i++) {
|
||||
output += "<tr";
|
||||
if (symbolset.mainIcon[i].remarks == "N/A") output += ' class="na"';
|
||||
output += "><td><b>" + symbolset.mainIcon[i].hierarchy + "</b>";
|
||||
for (var j = 0; j < symbolset.mainIcon[i].names.length; j++) {
|
||||
if (j == symbolset.mainIcon[i].names.length - 1) {
|
||||
output += "<br><b>" + symbolset.mainIcon[i].names[j] + "</b>";
|
||||
} else {
|
||||
if (
|
||||
symbolset.mainIcon[i].names[j] &&
|
||||
!(
|
||||
symbolset.mainIcon[i].hasOwnProperty("geometry") &&
|
||||
symbolset.mainIcon[i].geometry != "POINT"
|
||||
)
|
||||
)
|
||||
output += "<br><em>" + symbolset.mainIcon[i].names[j] + "</em>";
|
||||
}
|
||||
}
|
||||
|
||||
output +=
|
||||
"<br><em>SIDC:</em> " +
|
||||
symbolset.mainIcon[i]["codingscheme"] +
|
||||
"*" +
|
||||
symbolset.mainIcon[i]["battledimension"] +
|
||||
"*" +
|
||||
symbolset.mainIcon[i].functionid;
|
||||
|
||||
if (
|
||||
!(
|
||||
symbolset.mainIcon[i].hasOwnProperty("geometry") &&
|
||||
symbolset.mainIcon[i].geometry != "POINT"
|
||||
)
|
||||
) {
|
||||
output +=
|
||||
"</td><td>" +
|
||||
new ms.Symbol(
|
||||
symbolset.mainIcon[i]["codingscheme"] +
|
||||
"F" +
|
||||
symbolset.mainIcon[i]["battledimension"] +
|
||||
"P" +
|
||||
symbolset.mainIcon[i].functionid,
|
||||
{ size: size },
|
||||
remarks(symbolset.mainIcon[i].remarks),
|
||||
labels(symbolset.mainIcon[i])
|
||||
).asSVG();
|
||||
output += "</td>";
|
||||
} else {
|
||||
output += "</td><td>" + symbolset.mainIcon[i].geometry;
|
||||
output += "</td>";
|
||||
}
|
||||
|
||||
output +=
|
||||
"<td>" +
|
||||
(symbolset.mainIcon[i].remarks ? symbolset.mainIcon[i].remarks : "") +
|
||||
"</td></tr>";
|
||||
}
|
||||
output += "</table>";
|
||||
|
||||
return output;
|
||||
}
|
||||
107
node_modules/milsymbol/docs/milsymbol-2525b-ch2.html
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Milsymbol 2525B</title>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
|
||||
<script src="../dist/milsymbol.development.js"></script>
|
||||
<script src="milstd-2525.js"></script>
|
||||
|
||||
<script src="letter-sidc.js"></script>
|
||||
</head>
|
||||
|
||||
<body onload="generatenavigation();">
|
||||
|
||||
<h1>Milsymbol MIL-STD-2525B change 2 Implementation</h1>
|
||||
This page shows figures and tables from MIL-STD-2525B change 2 drawn with milsymbol.
|
||||
<br> All symbols are drawn using milsymbol when the page is loaded, no images or other external resources than
|
||||
milsymbol are
|
||||
used.
|
||||
<br>
|
||||
<br>
|
||||
<b>INDEX OF TABLES</b>
|
||||
<br>
|
||||
<div id="indexoftables"></div>
|
||||
<br>
|
||||
<b>INDEX OF FIGURES</b>
|
||||
<br>
|
||||
<div id="indexoffigures"></div>
|
||||
<br>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].WAR.SPC // Space
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].WAR.AIRTRK // Air
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].WAR.GRDTRK // Ground
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].WAR.SSUF // Sea surface
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].WAR.SBSUF // Sea subsurface
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].WAR.SOFUNT // SOF
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].TACGRP
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].SIGINT // OTHER
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.write(
|
||||
renderSymbolSet(
|
||||
milstd2525["ms2525b"].MOOTW // OTHER
|
||||
)
|
||||
);
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
2609
node_modules/milsymbol/docs/milsymbol-2525c.html
generated
vendored
Normal file
2998
node_modules/milsymbol/docs/milsymbol-2525d.html
generated
vendored
Normal file
1212
node_modules/milsymbol/docs/milsymbol-APP6b.html
generated
vendored
Normal file
1759
node_modules/milsymbol/docs/milsymbol-APP6d.html
generated
vendored
Normal file
315
node_modules/milsymbol/docs/number-sidc.js
generated
vendored
Normal file
@@ -0,0 +1,315 @@
|
||||
var size = 70;
|
||||
|
||||
/*
|
||||
// Since we don't have any geometry types in APP-6 D controle measures, let us get them from 2525D
|
||||
var control = milstd["ms2525d"]["25"]["main icon"];
|
||||
var std2525lookup = {};
|
||||
for (var i = 0; i < control.length; i++) {
|
||||
std2525lookup[control[i]["Code"]] = control[i].geometry;
|
||||
}
|
||||
for (var j = 0; j < milstd["app6d"]["25"]["main icon"].length; j++) {
|
||||
milstd["app6d"]["25"]["main icon"][j].geometry = std2525lookup[milstd["app6d"]["25"]["main icon"][j]["Code"]];
|
||||
}
|
||||
*/
|
||||
/*
|
||||
ms.addSymbolPart(function debug() {
|
||||
//This debug function is a minimal example of how to extend milsymbol.
|
||||
//Create a variable to store your geometries
|
||||
var drawArray1 = [];
|
||||
var drawArray2 = [];
|
||||
//Get a new bounding box and modify it if your geometry extends outside the current bounds.
|
||||
var gbbox = new ms.BBox();
|
||||
//Draws the icon octagon
|
||||
drawArray2.push({
|
||||
type: "path",
|
||||
fill: false,
|
||||
stroke: "rgb(0,0,255)",
|
||||
strokewidth: 0.8,
|
||||
d:
|
||||
"m 120,60 0,80 m -40,-80 0,80 m -20,-20 80,0 m 0,-40 -80,0 M 100,50 135.35534,64.64466 150,100 135.35534,135.35534 100,150.00002 64.644661,135.35534 50,100 64.644661,64.64466 z"
|
||||
});
|
||||
return { pre: drawArray1, post: drawArray2, bbox: gbbox };
|
||||
});
|
||||
//*/
|
||||
|
||||
function generatenavigation() {
|
||||
var i = 0;
|
||||
var indexoftables = "";
|
||||
document.querySelectorAll("h2, h3").forEach(function(d) {
|
||||
i++;
|
||||
d.id = "heading-" + i;
|
||||
indexoftables +=
|
||||
'<a href="#heading-' +
|
||||
i +
|
||||
'" class="index-' +
|
||||
d.tagName.toLowerCase() +
|
||||
'">' +
|
||||
d.textContent +
|
||||
"</a><br>\n";
|
||||
});
|
||||
document.getElementById("indexoftables").innerHTML = indexoftables;
|
||||
|
||||
i = 0;
|
||||
var indexoffigures = "";
|
||||
document.querySelectorAll("figure").forEach(function(d) {
|
||||
i++;
|
||||
d.id = "figure-" + i;
|
||||
d = d.getElementsByTagName("figcaption").item(0);
|
||||
indexoffigures +=
|
||||
'<a href="#figure-' + i + '">' + d.textContent + "</a><br>\n";
|
||||
});
|
||||
document.getElementById("indexoffigures").innerHTML = indexoffigures;
|
||||
}
|
||||
|
||||
function remarks(remark) {
|
||||
if (
|
||||
["From MIL-STD-2525.", "Simplification of MIL-STD-2525 icon TBD."].indexOf(
|
||||
remark
|
||||
) != -1
|
||||
) {
|
||||
return { monoColor: "Silver" };
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
function labels(icon) {
|
||||
return {
|
||||
infoColor: "Silver",
|
||||
quantity: "C",
|
||||
additionalInformation: "H",
|
||||
additionalInformation1: "H1",
|
||||
hostile: "N",
|
||||
uniqueDesignation: "T",
|
||||
uniqueDesignation1: "T1",
|
||||
dtg: "W",
|
||||
dtg1: "W1",
|
||||
altitudeDepth: "X",
|
||||
location: "Y",
|
||||
targetNumber: "AP"
|
||||
};
|
||||
}
|
||||
|
||||
function renderSymbolSet(symbolset) {
|
||||
var output = "";
|
||||
var i;
|
||||
output += "<h2>" + symbolset.name + "</h2>";
|
||||
output += "<h3>" + symbolset.name + " Main Icon</h3>";
|
||||
output += "<table border=1><thead><tr><th>Description</th><th>Icon</th>";
|
||||
|
||||
if (symbolset.symbolset == 36) output += "<th>Alternate Icon</th>";
|
||||
|
||||
output += "<th>Remarks</th></tr></thead>";
|
||||
|
||||
for (i = 0; i < symbolset.mainIcon.length; i++) {
|
||||
var symbol = new ms.Symbol(
|
||||
"1003" +
|
||||
symbolset.symbolset +
|
||||
"0000" +
|
||||
symbolset.mainIcon[i]["Code"] +
|
||||
"0000",
|
||||
{ size: size },
|
||||
remarks(symbolset.mainIcon[i]["Remarks"]),
|
||||
symbolset.symbolset == 25 ? labels() : {}
|
||||
);
|
||||
|
||||
output += "<tr";
|
||||
|
||||
if (
|
||||
["N/A", "For training or hierarchical purposes only"].indexOf(
|
||||
symbolset.mainIcon[i]["Remarks"]
|
||||
) != -1
|
||||
) {
|
||||
output += ' class="na"';
|
||||
}
|
||||
|
||||
if (
|
||||
!symbol.isValid() &&
|
||||
!(
|
||||
symbolset.mainIcon[i].hasOwnProperty("Geometric Rendering") &&
|
||||
symbolset.mainIcon[i]["Geometric Rendering"] != "Point"
|
||||
)
|
||||
) {
|
||||
output += ' style="background-color:red"';
|
||||
console.warn(
|
||||
symbolset.mainIcon[i]["Entity Subtype"] ||
|
||||
symbolset.mainIcon[i]["Entity Type"] ||
|
||||
symbolset.mainIcon[i]["Entity"] +
|
||||
"\n" +
|
||||
symbol.getOptions().sidc +
|
||||
"\n" +
|
||||
symbol.isValid(true)
|
||||
);
|
||||
}
|
||||
|
||||
output +=
|
||||
"><td><b>" +
|
||||
(symbolset.mainIcon[i]["Entity Subtype"] ||
|
||||
symbolset.mainIcon[i]["Entity Type"] ||
|
||||
symbolset.mainIcon[i]["Entity"]) +
|
||||
"</b>";
|
||||
|
||||
if (
|
||||
!(
|
||||
symbolset.mainIcon[i].hasOwnProperty("Geometric Rendering") &&
|
||||
symbolset.mainIcon[i]["Geometric Rendering"] != "Point"
|
||||
)
|
||||
) {
|
||||
output +=
|
||||
"<br><br><em>Type:</em> " +
|
||||
(symbolset.mainIcon[i]["Entity Subtype"]
|
||||
? "Entity Subtype"
|
||||
: symbolset.mainIcon[i]["Entity Type"]
|
||||
? "Entity Type"
|
||||
: "Entity");
|
||||
if (symbolset.mainIcon[i]["Entity Subtype"]) {
|
||||
output +=
|
||||
"<br><em>Entity/Entity Type:</em> " +
|
||||
symbolset.mainIcon[i]["Entity"] +
|
||||
"/" +
|
||||
symbolset.mainIcon[i]["Entity Type"];
|
||||
} else {
|
||||
if (symbolset.mainIcon[i]["Entity Type"]) {
|
||||
output += "<br><em>Entity:</em> " + symbolset.mainIcon[i]["Entity"];
|
||||
}
|
||||
}
|
||||
|
||||
output += "<br><em>Symbol Set Code:</em> " + symbolset.symbolset;
|
||||
}
|
||||
|
||||
output += "<br><em>Code:</em> " + symbolset.mainIcon[i]["Code"];
|
||||
|
||||
if (
|
||||
!(
|
||||
symbolset.mainIcon[i].hasOwnProperty("Geometric Rendering") &&
|
||||
symbolset.mainIcon[i]["Geometric Rendering"] != "Point"
|
||||
)
|
||||
) {
|
||||
output +=
|
||||
"</td><td>" +
|
||||
"<!--" +
|
||||
"1003" +
|
||||
symbolset.symbolset +
|
||||
"0000" +
|
||||
symbolset.mainIcon[i]["Code"] +
|
||||
"0000" +
|
||||
"-->" +
|
||||
symbol.asSVG();
|
||||
output += "</td>";
|
||||
} else {
|
||||
output += "</td><td>" + symbolset.mainIcon[i]["Geometric Rendering"];
|
||||
output += "</td>";
|
||||
}
|
||||
if (symbolset.symbolset == 36) {
|
||||
output +=
|
||||
"<td>" +
|
||||
new ms.Symbol(
|
||||
"1003" +
|
||||
symbolset.symbolset +
|
||||
"0000" +
|
||||
symbolset.mainIcon[i]["Code"] +
|
||||
"0000",
|
||||
{ size: size, alternateMedal: true },
|
||||
remarks(symbolset.mainIcon[i]["Remarks"])
|
||||
).asSVG();
|
||||
output += "</td>";
|
||||
}
|
||||
|
||||
output +=
|
||||
"<td>" +
|
||||
(symbolset.mainIcon[i]["Remarks"]
|
||||
? symbolset.mainIcon[i]["Remarks"]
|
||||
: "") +
|
||||
"</td></tr>";
|
||||
}
|
||||
output += "</table>";
|
||||
if (symbolset.modifier1.length) {
|
||||
output += "<h3>" + symbolset.name + " Modifier 1</h3>";
|
||||
output +=
|
||||
"<table border=1><thead><tr><th>Description</th><th>Icon</th><th>Remarks</th></tr></thead>";
|
||||
for (i = 0; i < symbolset.modifier1.length; i++) {
|
||||
var symbol = new ms.Symbol(
|
||||
"1003" +
|
||||
symbolset.symbolset +
|
||||
"0000000000" +
|
||||
symbolset.modifier1[i]["Code"] +
|
||||
"00",
|
||||
{ size: size },
|
||||
remarks(symbolset.modifier1[i]["Remarks"])
|
||||
);
|
||||
output += "<tr";
|
||||
|
||||
if (
|
||||
symbolset.modifier1[i]["Code"].length == 2 &&
|
||||
symbolset.modifier1[i]["Code"] != 99 &&
|
||||
!symbol.isValid() &&
|
||||
!(symbolset.symbolset == "25" && symbolset.modifier1[i]["Code"] <= 12) // mobility modifiers we don't support
|
||||
) {
|
||||
output += ' style="background-color:red"';
|
||||
console.warn(
|
||||
symbolset.modifier1[i]["First Modifier"] +
|
||||
"\n" +
|
||||
symbol.getOptions().sidc +
|
||||
"\n" +
|
||||
symbol.isValid(true)
|
||||
);
|
||||
}
|
||||
|
||||
output += "><td><b>" + symbolset.modifier1[i]["First Modifier"] + "</b>";
|
||||
output += "<br><br><em>Symbol Set Code:</em> " + symbolset.symbolset;
|
||||
output += "<br><em>Code:</em> " + symbolset.modifier1[i]["Code"];
|
||||
output += "</td><td>";
|
||||
if (
|
||||
symbolset.modifier1[i]["Code"] != 99 &&
|
||||
!isNaN(symbolset.modifier1[i]["Code"])
|
||||
)
|
||||
output += symbol.asSVG();
|
||||
output += "</td><td>" + symbolset.modifier1[i]["Remarks"] + "</td></tr>";
|
||||
}
|
||||
output += "</table>";
|
||||
}
|
||||
if (symbolset.modifier2.length != 0) {
|
||||
output += "<h3>" + symbolset.name + " Modifier 2</h3>";
|
||||
output +=
|
||||
"<table border=1><thead><tr><th>Description</th><th>Icon</th><th>Remarks</th></tr></thead>";
|
||||
for (i = 0; i < symbolset.modifier2.length; i++) {
|
||||
var symbol = new ms.Symbol(
|
||||
"1003" +
|
||||
symbolset.symbolset +
|
||||
"000000000000" +
|
||||
symbolset.modifier2[i]["Code"],
|
||||
{ size: size },
|
||||
remarks(symbolset.modifier2[i]["Remarks"])
|
||||
);
|
||||
output += "<tr";
|
||||
|
||||
if (
|
||||
symbolset.modifier2[i]["Code"].length == 2 &&
|
||||
symbolset.modifier2[i]["Code"] != 99 &&
|
||||
!symbol.isValid()
|
||||
) {
|
||||
output += ' style="background-color:red"';
|
||||
console.warn(
|
||||
symbolset.modifier2[i]["Second Modifier"] +
|
||||
"\n" +
|
||||
symbol.getOptions().sidc +
|
||||
"\n" +
|
||||
symbol.isValid(true)
|
||||
);
|
||||
}
|
||||
|
||||
output += "><td><b>" + symbolset.modifier2[i]["Second Modifier"] + "</b>";
|
||||
output += "<br><br><em>Symbol Set Code:</em> " + symbolset.symbolset;
|
||||
output += "<br><em>Code:</em> " + symbolset.modifier2[i]["Code"];
|
||||
output += "</td><td>";
|
||||
if (
|
||||
symbolset.modifier2[i]["Code"] != 99 &&
|
||||
!isNaN(symbolset.modifier2[i]["Code"])
|
||||
)
|
||||
output += symbol.asSVG();
|
||||
output += "</td><td>" + symbolset.modifier2[i]["Remarks"] + "</td></tr>";
|
||||
}
|
||||
output += "</table>";
|
||||
}
|
||||
return output;
|
||||
}
|
||||
58
node_modules/milsymbol/docs/style.css
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
||||
"Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
|
||||
"Segoe UI Symbol";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
max-width: 80%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
em {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
figure {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
svg {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
margin: auto;
|
||||
width: 100%;
|
||||
table-layout: fixed;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
table,
|
||||
td,
|
||||
th {
|
||||
border: solid 1px #ccc;
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
thead {
|
||||
font-weight: bold;
|
||||
background-color: rgb(243, 243, 243);
|
||||
display: table-header-group;
|
||||
}
|
||||
|
||||
tr td:nth-child(1) {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.index-h3 {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.na {
|
||||
background-color: #eee;
|
||||
color: #999;
|
||||
}
|
||||
11
node_modules/milsymbol/examples/README.md
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
# Examples
|
||||
|
||||
These examples shows different functionality and ways to use milsymbol with external libraries.
|
||||
|
||||
There are also several other resouces online that demonstrates milsymbol usage, for example:
|
||||
|
||||
- Cesium http://cesiumjs.org/2016/07/20/Cesium-and-milsymbol/
|
||||
- SAPUI5 https://blogs.sap.com/2016/07/28/adding-military-map-symbols-to-your-sapui5-applications/
|
||||
- Scala https://github.com/workingDog/ScalaMS
|
||||
|
||||
If you would like to contribute with examples of milsymbol usage, please create them in the same structure as bl.ocks use. https://bl.ocks.org/-/about
|
||||
88
node_modules/milsymbol/examples/angular/app.js
generated
vendored
Executable file
@@ -0,0 +1,88 @@
|
||||
angular
|
||||
.module("symbolTestApp", [])
|
||||
.directive("milsymbol", [
|
||||
"$log",
|
||||
function($log) {
|
||||
function createSymbolCode(scope) {
|
||||
var size = scope.size || 20;
|
||||
var symbol = new ms.Symbol(scope.sic, {
|
||||
size: size,
|
||||
uniqueDesignation: scope.uniqueDesignation
|
||||
});
|
||||
scope.code = symbol.toDataURL();
|
||||
return symbol;
|
||||
}
|
||||
|
||||
function link(scope, element, attrs) {
|
||||
var mysymbol = createSymbolCode(scope);
|
||||
scope.code = mysymbol.toDataURL();
|
||||
|
||||
scope.$watch("sic", function(newValue, oldValue) {
|
||||
if (newValue !== oldValue) {
|
||||
mysymbol = createSymbolCode(scope);
|
||||
}
|
||||
});
|
||||
scope.$watch("uniqueDesignation", function(newValue, oldValue) {
|
||||
if (newValue !== oldValue) {
|
||||
mysymbol.setOptions({ uniqueDesignation: scope.uniqueDesignation });
|
||||
scope.code = mysymbol.toDataURL();
|
||||
}
|
||||
});
|
||||
|
||||
scope.$watch("size", function(newValue, oldValue) {
|
||||
if (newValue !== oldValue) {
|
||||
mysymbol.setOptions({ size: scope.size });
|
||||
scope.code = mysymbol.toDataURL();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
restrict: "E",
|
||||
replace: true,
|
||||
scope: {
|
||||
sic: "@sic",
|
||||
size: "@size",
|
||||
uniqueDesignation: "@"
|
||||
},
|
||||
template: function(element, attrs) {
|
||||
return '<img class="symbol-sm" ng-src="{{code}}"/>';
|
||||
},
|
||||
link: link
|
||||
};
|
||||
}
|
||||
])
|
||||
.controller("ListSymbolsController", [
|
||||
"$scope",
|
||||
function($scope) {
|
||||
$scope.symbols = [
|
||||
"SFG*UCDSS-*****",
|
||||
"SNG*UCDSS-*****",
|
||||
"SHG*UCDSS-*****",
|
||||
"SUG*UCDSV-*****",
|
||||
"SFG*UCDSV-*****",
|
||||
"SNG*UCDSV-*****",
|
||||
"SHG*UCDSV-*****",
|
||||
"SUG*UCDM--*****",
|
||||
"SFG*UCDM--*****",
|
||||
"SNG*UCDM--*****",
|
||||
"SHG*UCDM--*****",
|
||||
"SUG*UCDML-*****",
|
||||
"SFG*UCDML-*****",
|
||||
"SNG*UCDML-*****",
|
||||
"SHG*UCDML-*****",
|
||||
"SUG*UCDMLA*****",
|
||||
"SFG*UCDMLA*****",
|
||||
"SNG*UCDMLA*****",
|
||||
"SHG*UCDMLA*****"
|
||||
];
|
||||
}
|
||||
])
|
||||
.controller("SymbolController", [
|
||||
"$scope",
|
||||
function($scope) {
|
||||
$scope.symbolSize = 40;
|
||||
$scope.sidc = "SFG-UCI----D";
|
||||
$scope.uniqueDesignation = "";
|
||||
}
|
||||
]);
|
||||
71
node_modules/milsymbol/examples/angular/index.html
generated
vendored
Executable file
@@ -0,0 +1,71 @@
|
||||
<!doctype html>
|
||||
<html ng-app="symbolTestApp">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style>
|
||||
.symbol-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.list-of-symbols img.symbol-sm {
|
||||
vertical-align: middle;
|
||||
}
|
||||
</style>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js"></script>
|
||||
<script src="../../dist/milsymbol.js"></script>
|
||||
<script src="app.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
<p>Example:</p>
|
||||
<code>
|
||||
<pre>
|
||||
<milsymbol sic="SFG-UCIZ---B" size="40"></milsymbol>
|
||||
</pre>
|
||||
</code>
|
||||
|
||||
<p>
|
||||
<milsymbol sic="SFG-UCIZ---B" size="40"></milsymbol>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<div ng-controller="ListSymbolsController" class="list-of-symbols">
|
||||
<span ng-repeat="symbol in symbols">
|
||||
<milsymbol sic="{{symbol}}" size="40"></milsymbol>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<h2>Two way bindings</h2>
|
||||
|
||||
<div ng-controller="SymbolController">
|
||||
<table class="symbol-table">
|
||||
<tr>
|
||||
<td>
|
||||
<form>
|
||||
Size:
|
||||
<br>
|
||||
<input type="number" ng-model="symbolSize" placeholder="Symbol size" ng-model-options="{ debounce: 500 }">
|
||||
<br> SIDC:
|
||||
<br>
|
||||
<input type="text" ng-model="sidc" placeholder="Symbol identification code" ng-model-options="{ debounce: 500 }">
|
||||
<br> Unique designation:
|
||||
<br>
|
||||
<input type="text" ng-model="uniqueDesignation" placeholder="uniqueDesignation" ng-model-options="{ debounce: 500 }">
|
||||
<br>
|
||||
|
||||
</form>
|
||||
</td>
|
||||
<td>
|
||||
<milsymbol sic="{{sidc}}" size="{{symbolSize}}" unique-designation="{{uniqueDesignation}}"></milsymbol>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
node_modules/milsymbol/examples/angular/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 71 KiB |
8
node_modules/milsymbol/examples/angular/readme.md
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
## Angular
|
||||
|
||||
A demo of a simple Angular.js directive for drawing milsymbol symbols.
|
||||
|
||||
|
||||
This example was created by https://github.com/kjellmf Kjell Magne Fauske
|
||||
|
||||
|
||||
152
node_modules/milsymbol/examples/arcgis3d/index.html
generated
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
|
||||
<title>ArcGIS JS API + milsymbol</title>
|
||||
<style>
|
||||
html,
|
||||
body,
|
||||
#viewDiv {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<!--
|
||||
This is GeoJSON containing our units.
|
||||
It will be availabel in a global variable called 'situation'
|
||||
-->
|
||||
<script src="../situation.json"></script>
|
||||
|
||||
<link rel="stylesheet" href="https://js.arcgis.com/4.6/esri/css/main.css">
|
||||
<script src="https://js.arcgis.com/4.6/"></script>
|
||||
<script src="../../dist/milsymbol.js"></script>
|
||||
|
||||
<script>
|
||||
require([
|
||||
"esri/Map",
|
||||
"esri/views/SceneView",
|
||||
"esri/layers/FeatureLayer",
|
||||
"esri/layers/support/Field",
|
||||
"esri/renderers/UniqueValueRenderer",
|
||||
"esri/geometry/Point",
|
||||
"esri/symbols/PointSymbol3D",
|
||||
"esri/symbols/IconSymbol3DLayer",
|
||||
"milsymbol",
|
||||
"dojo/_base/array",
|
||||
"dojo/on",
|
||||
"dojo/dom",
|
||||
"dojo/domReady!"
|
||||
], function (
|
||||
Map, SceneView, FeatureLayer, Field, UniqueValueRenderer, Point, PointSymbol3D,
|
||||
IconSymbol3DLayer,
|
||||
ms,
|
||||
arrayUtils, on, dom
|
||||
) {
|
||||
var map = new Map({
|
||||
basemap: "dark-gray",
|
||||
ground: "world-elevation"
|
||||
});
|
||||
|
||||
var view = new SceneView({
|
||||
container: "viewDiv",
|
||||
map: map,
|
||||
camera: {
|
||||
position: {
|
||||
x: 16, // lon
|
||||
y: 45, // lat
|
||||
z: 1500000 // elevation in meters
|
||||
},
|
||||
//scale: 15000000,
|
||||
//center: [16, 60],
|
||||
tilt: 45
|
||||
}
|
||||
});
|
||||
|
||||
// Create iconSymbol and add to renderer
|
||||
var unknown = new ms.Symbol("SPZ---------", { size: 15, square: true });
|
||||
var unknownUnit = new PointSymbol3D({
|
||||
symbolLayers: [new IconSymbol3DLayer({
|
||||
resource: {
|
||||
href: unknown.toDataURL()
|
||||
},
|
||||
size: unknown.getSize().width
|
||||
})]
|
||||
});
|
||||
|
||||
var renderer = new UniqueValueRenderer({
|
||||
field: "name", // I know the name is the Unique Designation for the unit
|
||||
defaultSymbol: unknownUnit
|
||||
});
|
||||
// Add a unique icon for each unit
|
||||
arrayUtils.map(situation.features, function (feature, i) {
|
||||
var unit = new ms.Symbol(feature.properties.SIDC, { size: 20, square: true });
|
||||
|
||||
renderer.addUniqueValueInfo(feature.properties.name,
|
||||
new PointSymbol3D({
|
||||
symbolLayers: [new IconSymbol3DLayer({
|
||||
resource: {
|
||||
href: unit.asCanvas(3).toDataURL()
|
||||
},
|
||||
size: Math.max(unit.getSize().height, unit.getSize().width)
|
||||
})]
|
||||
})
|
||||
)
|
||||
});
|
||||
|
||||
|
||||
var fields = [
|
||||
{
|
||||
name: "ObjectID",
|
||||
alias: "ObjectID",
|
||||
type: "oid"
|
||||
}, {
|
||||
name: "name",
|
||||
alias: "name",
|
||||
type: "string"
|
||||
}, {
|
||||
name: "SIDC",
|
||||
alias: "SIDC",
|
||||
type: "string"
|
||||
}];
|
||||
|
||||
var graphics = arrayUtils.map(situation.features, function (feature, i) {
|
||||
return {
|
||||
geometry: new Point({
|
||||
x: feature.geometry.coordinates[0],
|
||||
y: feature.geometry.coordinates[1]
|
||||
}),
|
||||
// select only the attributes you care about
|
||||
attributes: {
|
||||
ObjectID: i,
|
||||
name: feature.properties.name,
|
||||
SIDC: feature.properties.SIDC,
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
var lyr = new FeatureLayer({
|
||||
source: graphics,
|
||||
fields: fields,
|
||||
objectIdField: "ObjectID",
|
||||
renderer: renderer,
|
||||
spatialReference: {
|
||||
wkid: 4326
|
||||
},
|
||||
geometryType: "point"
|
||||
});
|
||||
|
||||
map.add(lyr);
|
||||
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="viewDiv"></div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
node_modules/milsymbol/examples/arcgis3d/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 172 KiB |
3
node_modules/milsymbol/examples/arcgis3d/readme.md
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# ArcGIS JS API
|
||||
|
||||
This is a sample for how to use milsymbol in the ArcGIS JS API 4.6.
|
||||
217
node_modules/milsymbol/examples/d3-list/index.html
generated
vendored
Normal file
@@ -0,0 +1,217 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<style>
|
||||
.node-text {
|
||||
font: 12px sans-serif;
|
||||
}
|
||||
|
||||
.link {
|
||||
fill: none;
|
||||
stroke: rgb(200, 200, 200);
|
||||
shape-rendering: crispEdges;
|
||||
stroke-dasharray: 2, 2;
|
||||
}
|
||||
|
||||
.indicator {
|
||||
stroke: rgb(100, 100, 100);
|
||||
}
|
||||
</style>
|
||||
<script src="https://d3js.org/d3.v5.min.js"></script>
|
||||
<script src="../../dist/milsymbol.js"></script>
|
||||
<script src="../situation.json"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="orbat"></div>
|
||||
|
||||
<script>
|
||||
var duration = 300;
|
||||
var margin = { top: 15, right: 20, bottom: 10, left: 30 };
|
||||
var svg = d3.select("#orbat")
|
||||
.append("svg")
|
||||
.attr("width", 500)
|
||||
.attr("height", 500)
|
||||
.append("g")
|
||||
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
|
||||
|
||||
function geoJson2tree(data, name, command) {
|
||||
var rawdata = {};
|
||||
for (var key in data.features) {
|
||||
rawdata[data.features[key].properties[name]] = data.features[key];
|
||||
rawdata[data.features[key].properties[name]].suborgs = [];
|
||||
data.features[key].name = data.features[key].properties[name].replace('ä', 'ä').replace('å', 'å');
|
||||
data.features[key].sidc = data.features[key].properties["SIDC"];
|
||||
}
|
||||
var tree = { "name": "milsymbol ORBAT", "sidc": "SUGP------", "suborgs": [] };
|
||||
for (var key in rawdata) {
|
||||
if (rawdata.hasOwnProperty(rawdata[key].properties[command])) {
|
||||
rawdata[rawdata[key].properties[command]].suborgs.push(rawdata[key]);
|
||||
} else {
|
||||
var newCommand = { "name": rawdata[key].properties[command], "sidc": "SFGP------", "suborgs": [rawdata[key]] };
|
||||
rawdata[rawdata[key].properties[command]] = newCommand;
|
||||
tree.suborgs.push(newCommand);
|
||||
}
|
||||
}
|
||||
return tree;
|
||||
}
|
||||
var structure = geoJson2tree(situation, "name", "command");
|
||||
|
||||
var d3cluster = d3.tree().nodeSize([0, 20]);;
|
||||
var d3hirarcy = d3.hierarchy(structure, function (d) { return d.suborgs; });
|
||||
d3hirarcy.x0 = 0;
|
||||
d3hirarcy.y0 = 0;
|
||||
|
||||
update(svg, d3cluster, d3hirarcy, d3hirarcy);
|
||||
|
||||
function update(svg, d3cluster, d3hirarcy, source) {
|
||||
var barHeight = 25;
|
||||
// Compute the new tree layout.
|
||||
var nodes = d3cluster(d3hirarcy),
|
||||
links = nodes.links();
|
||||
|
||||
var height = Math.max(500, nodes.descendants().length * barHeight + margin.top + margin.bottom);
|
||||
|
||||
d3.select("#orbat").select("svg").transition()
|
||||
.duration(duration)
|
||||
.attr("height", height);
|
||||
|
||||
// Compute the "layout".
|
||||
var i = 0;
|
||||
nodes.eachBefore(function (d) {
|
||||
//console.log('d.x0 '+d.x0 +' === d.x ' + ((i++) * barHeight) + ' === d.name ' + d.data.name)
|
||||
d.x = (i++) * barHeight;
|
||||
});
|
||||
|
||||
//update existing
|
||||
var node = svg.selectAll("g.node")
|
||||
.data(d3hirarcy.descendants(), function (d) { return d.id || (d.id = ++i); });
|
||||
|
||||
node.transition()
|
||||
.duration(duration)
|
||||
.attr("transform", function (d) { return "translate(" + (d.y) + "," + (d.x) + ")"; });
|
||||
|
||||
node.select(".indicator").transition()
|
||||
.duration(duration)
|
||||
.attr("fill", function (d) { if (d._children) { return "rgb(250,250,250)" } else { return "rgb(100,100,100)" } })
|
||||
.attr("transform", function (d) { if (d._children) { return "translate(-21,0) rotate(0)" } else { return "translate(-21,0) rotate(45)" } })
|
||||
//Enter new nodes
|
||||
var newNode = node.enter().append("g")
|
||||
.attr("class", "node")
|
||||
.attr("transform", function (d) { return "translate(" + (source.y0) + "," + (source.x0) + ")"; })
|
||||
.style("opacity", 1e-6);
|
||||
|
||||
newNode.transition()
|
||||
.duration(duration)
|
||||
.attr("transform", function (d) { return "translate(" + (d.y) + "," + (d.x) + ")"; })
|
||||
.style("opacity", 1);
|
||||
|
||||
newNode.each(function (d) {
|
||||
if (d.children || d._children) {
|
||||
d3.select(this)
|
||||
.append("path")
|
||||
.attr("class", "indicator")
|
||||
.attr("d", "M -0,-5 l 5,5 -5,5 z")
|
||||
.attr("fill", function (d) { if (d._children) { return "rgb(250,250,250)" } else { return "rgb(100,100,100)" } })
|
||||
.attr("transform", function (d) { if (d._children) { return "translate(-21,0) rotate(0)" } else { return "translate(-21,0) rotate(45)" } })
|
||||
.on("click", function click(d) {
|
||||
if (d.children) {
|
||||
d._children = d.children;
|
||||
d.children = null;
|
||||
} else {
|
||||
d.children = d._children;
|
||||
d._children = null;
|
||||
}
|
||||
update(svg, d3cluster, d3hirarcy, d);
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
//milsymbol icon
|
||||
newNode.append("g")
|
||||
.attr("class", "symbol")
|
||||
.attr("transform", function (d) {
|
||||
if (d.data.sidc) d.data.symbol = new ms.Symbol(d.data.sidc, { size: 15 });
|
||||
return "translate(" + (-d.data.symbol.getOctagonAnchor().x) + "," + (-d.data.symbol.getOctagonAnchor().y) + ")";
|
||||
})
|
||||
.each(function (d) { this.appendChild(d.data.symbol.asDOM()) })
|
||||
|
||||
newNode.append("text")
|
||||
.attr("class", "node-text")
|
||||
.attr("dy", 3)
|
||||
.attr("x", 20)
|
||||
.style("text-anchor", "start")
|
||||
.text(function (d) { return d.data.name; });
|
||||
|
||||
//Remove old nodes
|
||||
node.exit()
|
||||
.transition()
|
||||
.duration(duration)
|
||||
.attr("transform", function (d) {
|
||||
return "translate(" + source.y + "," + source.x + ")";
|
||||
})
|
||||
.style("opacity", 1e-6)
|
||||
.remove();
|
||||
|
||||
//Link code
|
||||
var link = svg.selectAll("path.link")
|
||||
.data(d3hirarcy.descendants().slice(1), function (link) { return link.id + ':' + link.parent.id; });
|
||||
|
||||
// Transition links to their new position.
|
||||
link.transition()
|
||||
.duration(duration)
|
||||
.attr("d", function (d) {
|
||||
return "M" + d.parent.y + "," + d.parent.x
|
||||
+ " l"
|
||||
+ " 0," + (d.x - d.parent.x) + " "
|
||||
+ (d.y - d.parent.y) / 2 + "," + 0 + " "
|
||||
+ "L" + d.y + "," + d.x;
|
||||
});
|
||||
|
||||
var newLink = link.enter()
|
||||
.insert("path", "g")
|
||||
.attr("class", "link")
|
||||
.attr("d", function (d) {
|
||||
return "M" + source.y0 + "," + source.x0
|
||||
+ " l"
|
||||
+ " 0," + (source.x0 - source.x0) + " "
|
||||
+ (source.y0 - source.y0) / 2 + "," + 0 + " "
|
||||
+ "L" + source.y0 + "," + source.x0;
|
||||
});
|
||||
|
||||
newLink.transition()
|
||||
.duration(duration)
|
||||
.attr("d", function (d) {
|
||||
return "M" + d.parent.y + "," + d.parent.x
|
||||
+ " l"
|
||||
+ " 0," + (d.x - d.parent.x) + " "
|
||||
+ (d.y - d.parent.y) / 2 + "," + 0 + " "
|
||||
+ "L" + d.y + "," + d.x;
|
||||
});
|
||||
|
||||
// Transition exiting nodes to the parent's new position.
|
||||
link.exit().transition()
|
||||
.duration(duration)
|
||||
.attr("d", function (d) {
|
||||
return "M" + source.y0 + "," + source.x0
|
||||
+ " l"
|
||||
+ " 0," + (source.x0 - source.x0) + " "
|
||||
+ (source.y0 - source.y0) / 2 + "," + 0 + " "
|
||||
+ "L" + source.y0 + "," + source.x0;
|
||||
})
|
||||
.remove();
|
||||
|
||||
// if click
|
||||
// Old positions for transition.
|
||||
nodes.each(function (d) {
|
||||
d.x0 = d.x;
|
||||
d.y0 = d.y;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
BIN
node_modules/milsymbol/examples/d3-list/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 47 KiB |
5
node_modules/milsymbol/examples/d3-list/readme.md
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
## D3 Orbat list
|
||||
|
||||
Shows an ORBAT structure similar to a folder list in a file manager. It is possible to hide/show subunits by clicking on the arrow next to a unit symbol.
|
||||
|
||||
This example is using D3 version 5 for rendering the ORBAT.
|
||||
220
node_modules/milsymbol/examples/d3-tree/index.html
generated
vendored
Normal file
@@ -0,0 +1,220 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<style>
|
||||
.link {
|
||||
fill: none;
|
||||
stroke: rgb(200, 200, 200);
|
||||
shape-rendering: crispEdges;
|
||||
}
|
||||
</style>
|
||||
<script src="https://d3js.org/d3.v3.min.js"></script>
|
||||
<script src="../../dist/milsymbol.js"></script>
|
||||
<script src="../situation.json"></script>
|
||||
</head>
|
||||
|
||||
<body onload="renderOrbat()">
|
||||
|
||||
Orientation of the tree:
|
||||
<input onclick="update()" type="radio" name="orientation" value="vertical">Top to Bottom
|
||||
<input onclick="update()" type="radio" name="orientation" value="horisontal" checked>Left to Right
|
||||
<br>
|
||||
|
||||
<div id="orbattree"></div>
|
||||
|
||||
<script>
|
||||
function geoJson2tree(data, name, command) {
|
||||
var rawdata = {};
|
||||
for (var key in data.features) {
|
||||
rawdata[data.features[key].properties[name]] = data.features[key];
|
||||
rawdata[data.features[key].properties[name]].children = [];
|
||||
}
|
||||
|
||||
var tree = { "properties": { "orbatName": "milsymbol Orbat", "SIDC": "SUGP------" }, "children": [] };
|
||||
for (var key in rawdata) {
|
||||
if (rawdata.hasOwnProperty(rawdata[key].properties[command])) {
|
||||
rawdata[rawdata[key].properties[command]].children.push(rawdata[key]);
|
||||
} else {
|
||||
var newCommand = { "properties": { "name": rawdata[key].properties[command], "SIDC": "SFGP------" }, "children": [rawdata[key]] };
|
||||
rawdata[rawdata[key].properties[command]] = newCommand;
|
||||
tree.children.push(newCommand);
|
||||
}
|
||||
}
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
||||
var structure = geoJson2tree(situation, "name", "command");
|
||||
|
||||
var tree, diagonal, svg;
|
||||
var p = 0,
|
||||
duration = 750,
|
||||
root;
|
||||
|
||||
var sof, orientation, _source;
|
||||
|
||||
var margin = { top: 100, right: 200, bottom: 200, left: 100 };
|
||||
|
||||
function renderOrbat() {
|
||||
tree = d3.layout.tree()
|
||||
.separation(function (a, b) { return a.parent === b.parent ? 1 : 1; })
|
||||
|
||||
svg = d3.select("#orbattree").append("svg")
|
||||
.attr("width", 500)
|
||||
.attr("height", 500)
|
||||
.append("g")
|
||||
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
|
||||
|
||||
structure.x0 = 500 / 2;
|
||||
structure.y0 = 0;
|
||||
|
||||
function collapse(d) {
|
||||
if (d.children) {
|
||||
d._children = d.children;
|
||||
d._children.forEach(collapse);
|
||||
d.children = null;
|
||||
}
|
||||
}
|
||||
structure.children.forEach(collapse);
|
||||
|
||||
update(structure);
|
||||
}
|
||||
function update(source) {
|
||||
var radios = document.getElementsByName('orientation');
|
||||
for (var i = 0, length = radios.length; i < length; i++) {
|
||||
if (radios[i].checked) {
|
||||
orientation = radios[i].value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (orientation == "horisontal") { tree.nodeSize([70, 200]) } else { tree.nodeSize([120, 150]) };
|
||||
|
||||
// Compute the new tree layout.
|
||||
var nodes = tree.nodes(structure),
|
||||
links = tree.links(nodes);
|
||||
|
||||
var minX = 0;
|
||||
var maxX = 0;
|
||||
var maxY = 0;
|
||||
nodes.forEach(function (d) {
|
||||
maxY = Math.max(d.y, maxY);
|
||||
maxX = Math.max(d.x, maxX);
|
||||
minX = Math.min(d.x, minX)
|
||||
});
|
||||
|
||||
nodes.forEach(function (d) { d.x = d.x - minX; });
|
||||
|
||||
if (orientation == "horisontal") {
|
||||
d3.select("#orbattree").select("svg").transition()
|
||||
.duration(duration)
|
||||
.attr("height", (maxX - minX) + margin.top + margin.bottom)
|
||||
.attr("width", maxY + margin.left + margin.right);
|
||||
} else {
|
||||
d3.select("#orbattree").select("svg").transition()
|
||||
.duration(duration)
|
||||
.attr("width", (maxX - minX) + margin.top + margin.bottom)
|
||||
.attr("height", maxY + margin.left + margin.right);
|
||||
}
|
||||
|
||||
// Update the nodes…
|
||||
var node = svg.selectAll("g.node")
|
||||
.data(nodes, function (d) { return d.id || (d.id = ++p); });
|
||||
|
||||
// Enter any new nodes at the parent's previous position.
|
||||
var nodeEnter = node.enter().append("g")
|
||||
.attr("class", "node")
|
||||
.attr("transform", function (d) { return orientation == "horisontal" ? ("translate(" + source.y0 + "," + source.x0 + ")") : ("translate(" + source.x0 + "," + source.y0 + ")"); })
|
||||
.on("click", click)
|
||||
|
||||
// Transition nodes to their new position.
|
||||
var nodeUpdate = node.transition()
|
||||
.duration(duration)
|
||||
.attr("transform", function (d) { return orientation == "horisontal" ? ("translate(" + d.y + "," + d.x + ")") : ("translate(" + d.x + "," + d.y + ")"); });
|
||||
|
||||
//Update all node symbols so that the color reflect if they have hidden children or not.
|
||||
node.select(".symbol").remove()
|
||||
node.append("g")
|
||||
.attr("class", "symbol")
|
||||
.attr("transform", function (d) {
|
||||
if (d.properties.SIDC) d.symbol = new ms.Symbol(d.properties.SIDC, { size: 30, uniqueDesignation: (d.properties.name), colorMode: (d._children && d._children != "" ? ms.getColorMode("Medium") : ms.getColorMode("Light")) });
|
||||
return "translate(" + (-d.symbol.octagonAnchor.x) + "," + (-d.symbol.octagonAnchor.y) + ")"
|
||||
})
|
||||
.each(function (d) { this.appendChild(d.symbol.asDOM()) })
|
||||
|
||||
// Transition exiting nodes to the parent's new position.
|
||||
var nodeExit = node.exit().transition()
|
||||
.duration(duration)
|
||||
.attr("transform", function (d) { return orientation == "horisontal" ? ("translate(" + source.y + "," + source.x + ")") : ("translate(" + source.x + "," + source.y + ")"); })
|
||||
.remove();
|
||||
|
||||
// Update the links…
|
||||
var link = svg.selectAll("path.link")
|
||||
.data(links, function (d) { return d.target.id; });
|
||||
|
||||
// Enter any new links at the parent's previous position.
|
||||
link.enter().insert("path", "g")
|
||||
.attr("class", "link")
|
||||
.attr("d", function (d) {
|
||||
var o = { x: source.x0, y: source.y0 };
|
||||
return elbow({ source: o, target: o });
|
||||
});
|
||||
|
||||
// Transition links to their new position.
|
||||
link.transition()
|
||||
.duration(duration)
|
||||
.attr("d", elbow);
|
||||
|
||||
// Transition exiting nodes to the parent's new position.
|
||||
link.exit().transition()
|
||||
.duration(duration)
|
||||
.attr("d", function (d) {
|
||||
var o = { x: source.x, y: source.y };
|
||||
return elbow({ source: o, target: o });
|
||||
})
|
||||
.remove();
|
||||
|
||||
// Stash the old positions for transition.
|
||||
nodes.forEach(function (d) {
|
||||
d.x0 = d.x;
|
||||
d.y0 = d.y;
|
||||
});
|
||||
root = structure;
|
||||
_source = source;
|
||||
}
|
||||
|
||||
// Toggle children on click.
|
||||
function click(d) {
|
||||
if (d.children) {
|
||||
d._children = d.children;
|
||||
d.children = null;
|
||||
} else {
|
||||
d.children = d._children;
|
||||
d._children = null;
|
||||
}
|
||||
update(d);
|
||||
}
|
||||
function expand(d) {
|
||||
if (d._children) {
|
||||
d.children = d._children;
|
||||
d._children = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Draws the line between nodes
|
||||
function elbow(d, i) {
|
||||
if (orientation == "horisontal") return "M" + d.source.y + "," + d.source.x
|
||||
+ " l" + (d.target.y - d.source.y) / 2 + "," + 0 + " "
|
||||
+ " 0," + (d.target.x - d.source.x) + " "
|
||||
+ "L" + d.target.y + "," + d.target.x;
|
||||
|
||||
return "M" + d.source.x + "," + d.source.y
|
||||
+ " l" + 0 + "," + (d.target.y - d.source.y) / 2 + " "
|
||||
+ " " + (d.target.x - d.source.x) + ",0 "
|
||||
+ "L" + d.target.x + "," + d.target.y;
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
BIN
node_modules/milsymbol/examples/d3-tree/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 36 KiB |
5
node_modules/milsymbol/examples/d3-tree/readme.md
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
## D3 Orbat tree
|
||||
|
||||
Shows an ORBAT structure in a tree view similar to how it would displayed in a power point presentation. It is possible to show/hide subunits by clicking on the units, when a unit has hidden subunits it will be displayed in a slightly darker color.
|
||||
|
||||
This example is using D3 version 3 for rendering the ORBAT.
|
||||
100
node_modules/milsymbol/examples/es6-import/index.html
generated
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>ES6 imports</h1>
|
||||
This sample shows how milsymbol can be imported as ES6 modules. You will have to allow CORS in your browser if you run it
|
||||
locally, or place the sample on a server.
|
||||
<br>
|
||||
<br>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td>
|
||||
We have imported land equipment, so here you should see a SVG and a Canvas symbol.
|
||||
</td>
|
||||
<td>
|
||||
We have not imported icons for 2525D, so this should display a symbol with missing main icon, and an indcator that something
|
||||
has gone wrong.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<br> SVG Example:
|
||||
<br>
|
||||
<div id="SVG-imported"></div>
|
||||
</td>
|
||||
<td>
|
||||
<br> SVG Example:
|
||||
<br>
|
||||
<div id="SVG-notimported"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Canvas Example:
|
||||
<br>
|
||||
<div id="Canvas-imported">
|
||||
<p></p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
Canvas Example:
|
||||
<br>
|
||||
<div id="Canvas-notimported">
|
||||
<p></p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<script type="module">
|
||||
import { ms, std2525c } from '../../index.esm.js';
|
||||
ms.addIcons(std2525c);
|
||||
|
||||
var color = "yellow";
|
||||
var outline = 3;
|
||||
|
||||
var symbol = new ms.Symbol("sfgpewrh--mt", {
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
direction: (750 * 360 / 6400),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N",
|
||||
outlineColor: color,
|
||||
outlineWidth: outline
|
||||
});
|
||||
|
||||
document.getElementById("SVG-imported").innerHTML = symbol.asSVG();
|
||||
|
||||
document.getElementById("Canvas-imported").replaceChild(
|
||||
symbol.asCanvas(),
|
||||
document.getElementById("Canvas-imported").firstChild);
|
||||
|
||||
var symbol = new ms.Symbol("10031500001101030000", {
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
direction: (750 * 360 / 6400),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N",
|
||||
outlineColor: color,
|
||||
outlineWidth: outline
|
||||
});
|
||||
|
||||
document.getElementById("SVG-notimported").innerHTML = symbol.asSVG();
|
||||
|
||||
document.getElementById("Canvas-notimported").replaceChild(
|
||||
symbol.asCanvas(),
|
||||
document.getElementById("Canvas-notimported").firstChild);
|
||||
|
||||
</script>
|
||||
</body>
|
||||
3
node_modules/milsymbol/examples/es6-import/readme.md
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
## ES6 Imports
|
||||
|
||||
This shows how milsymbol supports ES6 imports so that you can import only exactly what you need.
|
||||
71
node_modules/milsymbol/examples/leaflet-divicons/index.html
generated
vendored
Executable file
@@ -0,0 +1,71 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<style type="text/css">
|
||||
html,
|
||||
body,
|
||||
.mymap {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" />
|
||||
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>
|
||||
<script src="../../dist//milsymbol.js"></script>
|
||||
<script src="../situation.json"></script>
|
||||
</head>
|
||||
|
||||
<body onload="init()">
|
||||
<script>
|
||||
function init() {
|
||||
var osmAttr = '© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>';
|
||||
var OSM = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: osmAttr }),
|
||||
latlng = L.latLng(59, 16);
|
||||
var map = L.map('map', { center: latlng, zoom: 5, layers: [OSM] });
|
||||
|
||||
var iconSize = {
|
||||
"Team/Crew": 5,
|
||||
"Squad": 10,
|
||||
"Section": 15,
|
||||
"Platoon/detachment": 20,
|
||||
"Company/battery/troop": 25,
|
||||
"Battalion/squadron": 30,
|
||||
"Regiment/group": 35,
|
||||
"Brigade": 40,
|
||||
"Division": 45,
|
||||
"Corps/MEF": 50,
|
||||
"Army": 55,
|
||||
"Army Group/front": 60,
|
||||
"Region/Theater": 65,
|
||||
"Command": 70
|
||||
};
|
||||
|
||||
L.geoJson(situation, {
|
||||
pointToLayer: function (feature, latlng) {
|
||||
|
||||
var mysymbol = new ms.Symbol(
|
||||
feature.properties.SIDC, {
|
||||
uniqueDesignation: feature.properties.name
|
||||
})
|
||||
// Now that we have a symbol we can ask for the echelon and set the symbol size
|
||||
mysymbol = mysymbol.setOptions({ size: iconSize[mysymbol.getMetadata().echelon] });
|
||||
|
||||
var myicon = L.divIcon({
|
||||
className: '',
|
||||
html: mysymbol.asSVG(),
|
||||
iconAnchor: new L.Point(mysymbol.getAnchor().x, mysymbol.getAnchor().y)
|
||||
});
|
||||
|
||||
return L.marker(latlng, { icon: myicon, draggable: true });
|
||||
}
|
||||
}).addTo(map);
|
||||
}
|
||||
</script>
|
||||
<div id="map" class="mymap"></div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
node_modules/milsymbol/examples/leaflet-divicons/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 453 KiB |
5
node_modules/milsymbol/examples/leaflet-divicons/readme.md
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
## milsymbol in LeafLet - L.divIcon()
|
||||
|
||||
You can use the SVG XML output directly in a L.divIcon(), this way you can also add other HTML information to your markers if you want to. This is the simplest way of using milsymbol in LeafLet, but might run into performance issues if you are using a very large number of symbols.
|
||||
|
||||
This example is using LeafLet 1.3.1.
|
||||
73
node_modules/milsymbol/examples/leaflet-imageicons/index.html
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<style type="text/css">
|
||||
html,
|
||||
body,
|
||||
.mymap {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" />
|
||||
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>
|
||||
<script src="../../dist//milsymbol.js"></script>
|
||||
<script src="../situation.json"></script>
|
||||
</head>
|
||||
|
||||
<body onload="init()">
|
||||
<script>
|
||||
function init() {
|
||||
var osmAttr = '© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>';
|
||||
var OSM = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: osmAttr }),
|
||||
latlng = L.latLng(59, 16);
|
||||
var map = L.map('map', { center: latlng, zoom: 5, layers: [OSM] });
|
||||
|
||||
var iconSize = {
|
||||
"Team/Crew": 5,
|
||||
"Squad": 10,
|
||||
"Section": 15,
|
||||
"Platoon/detachment": 20,
|
||||
"Company/battery/troop": 25,
|
||||
"Battalion/squadron": 30,
|
||||
"Regiment/group": 35,
|
||||
"Brigade": 40,
|
||||
"Division": 45,
|
||||
"Corps/MEF": 50,
|
||||
"Army": 55,
|
||||
"Army Group/front": 60,
|
||||
"Region/Theater": 65,
|
||||
"Command": 70
|
||||
};
|
||||
|
||||
L.geoJson(situation, {
|
||||
pointToLayer: function (feature, latlng) {
|
||||
|
||||
var mysymbol = new ms.Symbol(
|
||||
feature.properties.SIDC, {
|
||||
uniqueDesignation: feature.properties.name
|
||||
})
|
||||
// Now that we have a symbol we can ask for the echelon and set the symbol size
|
||||
mysymbol = mysymbol.setOptions({ size: iconSize[mysymbol.getMetadata().echelon] });
|
||||
|
||||
var myicon = L.icon({
|
||||
iconUrl: mysymbol.toDataURL(),
|
||||
iconAnchor: [mysymbol.getAnchor().x, mysymbol.getAnchor().y],
|
||||
});
|
||||
|
||||
return L.marker(latlng, { icon: myicon, draggable: true });
|
||||
}
|
||||
}).addTo(map);
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id="map" class="mymap"></div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
node_modules/milsymbol/examples/leaflet-imageicons/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 454 KiB |
5
node_modules/milsymbol/examples/leaflet-imageicons/readme.md
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
## milsymbol in LeafLet - L.icon()
|
||||
|
||||
Using the toDataURL() method in milsymbol makes it possible to assign the output from milsymbol as an image source. This way you can use the output from milsymbol in ordinary L.icon() markers in LeafLet.
|
||||
|
||||
This example is using LeafLet 1.3.1 but will work without any problem in in LeafLet 0.7.3+.
|
||||
90
node_modules/milsymbol/examples/openlayers/index.html
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<style type="text/css">
|
||||
html,
|
||||
body,
|
||||
.mymap {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
<link rel="stylesheet" href="https://openlayers.org/en/v4.6.5/css/ol.css" type="text/css">
|
||||
<script src="https://openlayers.org/en/v4.6.5/build/ol.js" type="text/javascript"></script>
|
||||
<script src="../../dist/milsymbol.js"></script>
|
||||
<script src="../situation.json"></script>
|
||||
</head>
|
||||
|
||||
<body onload="init()">
|
||||
<script>
|
||||
function init() {
|
||||
var iconSize = {
|
||||
"Team/Crew": 5,
|
||||
"Squad": 10,
|
||||
"Section": 15,
|
||||
"Platoon/detachment": 20,
|
||||
"Company/battery/troop": 25,
|
||||
"Battalion/squadron": 30,
|
||||
"Regiment/group": 35,
|
||||
"Brigade": 40,
|
||||
"Division": 45,
|
||||
"Corps/MEF": 50,
|
||||
"Army": 55,
|
||||
"Army Group/front": 60,
|
||||
"Region/Theater": 65,
|
||||
"Command": 70
|
||||
};
|
||||
var vectorSource = new ol.source.Vector({
|
||||
features: (new ol.format.GeoJSON()).readFeatures(situation, { featureProjection: 'EPSG:3857' })
|
||||
});
|
||||
|
||||
var ratio = window.devicePixelRatio || 1;
|
||||
vectorSource.forEachFeature(function (f) {
|
||||
var mysymbol = new ms.Symbol(
|
||||
f.getProperties().SIDC, {
|
||||
uniqueDesignation: f.getProperties().name
|
||||
});
|
||||
|
||||
// Now that we have a symbol we can ask for the echelon and set the symbol size
|
||||
var mycanvas = mysymbol.setOptions({ size: iconSize[mysymbol.getMetadata().echelon] * ratio }).asCanvas();
|
||||
|
||||
f.setStyle(new ol.style.Style({
|
||||
image: new ol.style.Icon(({
|
||||
scale: 1 / ratio,
|
||||
anchor: [mysymbol.getAnchor().x, mysymbol.getAnchor().y],
|
||||
anchorXUnits: 'pixels',
|
||||
anchorYUnits: 'pixels',
|
||||
imgSize: [Math.floor(mysymbol.getSize().width), Math.floor(mysymbol.getSize().height)],
|
||||
img: (mycanvas)
|
||||
}))
|
||||
}));
|
||||
})
|
||||
|
||||
var vectorLayer = new ol.layer.Vector({
|
||||
source: vectorSource
|
||||
});
|
||||
|
||||
var rasterLayer = new ol.layer.Tile({
|
||||
preload: 4,
|
||||
source: new ol.source.OSM()
|
||||
});
|
||||
var map = new ol.Map({
|
||||
layers: [rasterLayer, vectorLayer],
|
||||
target: document.getElementById('map'),
|
||||
view: new ol.View({
|
||||
center: ol.proj.transform([16, 59], 'EPSG:4326', 'EPSG:3857'),
|
||||
zoom: 5
|
||||
})
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
<div id="map" class="mymap"></div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
node_modules/milsymbol/examples/openlayers/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 463 KiB |
7
node_modules/milsymbol/examples/openlayers/readme.md
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
## milsymbol in open layers 4 - ol.style.Icon()
|
||||
|
||||
Using the asCanvas() method in milsymbol makes it possible to assign the output from milsymbol as an image source. This way you can use the output from milsymbol in ol.style.Icon() in Open Layers. This should be able to handle a very large number of symbols.
|
||||
|
||||
If a style function is used for the symbols some sort of symbol cache should be used so that it won't have to regenerate all symbols at each interaction with the map. In this example however each symbol is set as a style on each feature.
|
||||
|
||||
This example uses Open Layers v4.6.5.
|
||||
65
node_modules/milsymbol/examples/outline/index.html
generated
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<script src="../../dist/milsymbol.js"></script>
|
||||
</head>
|
||||
|
||||
<body onload="example()">
|
||||
Outline Color:
|
||||
<select id="outlineColor" onchange="example()">
|
||||
<option>Silver</option>
|
||||
<option>Red</option>
|
||||
<option SELECTED>Yellow</option>
|
||||
<option>Lime</option>
|
||||
<option>Aqua</option>
|
||||
<option>Fuchsia</option>
|
||||
</select> Outline Width:
|
||||
<select id="outlineWidth" onchange="example()">
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4" SELECTED>4</option>
|
||||
<option value="5">5</option>
|
||||
<option value="6">6</option>
|
||||
<option value="7">7</option>
|
||||
<option value="8">8</option>
|
||||
<option value="9">9</option>
|
||||
<option value="10">10</option>
|
||||
</select>
|
||||
<br> SVG Example:
|
||||
<br>
|
||||
<div id="SVG"></div>
|
||||
Canvas Example:
|
||||
<br>
|
||||
<div id="Canvas">
|
||||
<p></p>
|
||||
</div>
|
||||
<script>
|
||||
function example() {
|
||||
var color = document.getElementById("outlineColor")[document.getElementById("outlineColor").selectedIndex].value;
|
||||
var outline = document.getElementById("outlineWidth")[document.getElementById("outlineWidth").selectedIndex].value;
|
||||
|
||||
var symbol = new ms.Symbol("sfgpewrh--mt", {
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
direction: (750 * 360 / 6400),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N",
|
||||
outlineColor: color,
|
||||
outlineWidth: outline
|
||||
});
|
||||
|
||||
document.getElementById("SVG").innerHTML = symbol.asSVG();
|
||||
|
||||
document.getElementById("Canvas").replaceChild(
|
||||
symbol.asCanvas(),
|
||||
document.getElementById("Canvas").firstChild);
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
BIN
node_modules/milsymbol/examples/outline/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 168 KiB |
3
node_modules/milsymbol/examples/outline/readme.md
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
## Outline
|
||||
|
||||
This shows how symbol outline is supported for both Canvas and SVG output.
|
||||
80
node_modules/milsymbol/examples/situation.json
generated
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
var situation = {"name":"Layer","type":"FeatureCollection",
|
||||
"crs": {"type": "name","properties": {"name": "EPSG:4326"}},
|
||||
"features":[
|
||||
{"type":"Feature","geometry":{"type":"Point","coordinates":[13.9264527063343,56.2888907165595]},"properties":{"SIDC":"SFGPU------E***","name":"1.C2 komp","fullname":"1.C2 komp/FTS/INSS","command":"FTS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[19.1604869967705,65.5966818958909]},"properties":{"SIDC":"SFGPUCRV---F***","name":"1.Jbat","fullname":"1.Jbat/INSS","command":"INSS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.0825282191617,59.6410393541284]},"properties":{"SIDC":"SFGPUUMSE--F***","name":"1.TKbat","fullname":"1.TKbat/INSS","command":"INSS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.780633496933,59.519251526265]},"properties":{"SIDC":"SFGPUULM---F***","name":"13.Säkbat","fullname":"13.Säkbat/INSS","command":"INSS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[15.4831849611643,60.496055634923]},"properties":{"SIDC":"SFGPUCI----F***","name":"17.Hvbat","fullname":"17.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[15.4200004438307,60.4762802902876]},"properties":{"SIDC":"SFGPUCI----E***","name":"171.Inskomp","fullname":"171.Inskomp/17.Hvbat/MRM/INSS","command":"17.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[15.6404774841138,60.6056416321666]},"properties":{"SIDC":"SFGPUCI----E***","name":"172.Inskomp","fullname":"172.Inskomp/17.Hvbat/MRM/INSS","command":"17.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[15.4164505691297,60.5385137626812]},"properties":{"SIDC":"SFGPUCI----E***","name":"173.Bevkomp","fullname":"173.Bevkomp/17.Hvbat/MRM/INSS","command":"17.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[15.5053934908843,60.4263401694757]},"properties":{"SIDC":"SFGPUCVF---C***","name":"174.Flyggrp","fullname":"174.Flyggrp/17.Hvbat/MRM/INSS","command":"17.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[15.5216822502589,60.419327747011]},"properties":{"SIDC":"SFGPUCE----D***","name":"176.Piplut","fullname":"176.Piplut/17.Hvbat/MRM/INSS","command":"17.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.1037137456012,60.6361002727779]},"properties":{"SIDC":"SFGPUCI---AF***","name":"18.Hvbat","fullname":"18.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.3850455958827,60.4752381559049]},"properties":{"SIDC":"SFGPUCI----E***","name":"181.Inskomp","fullname":"181.Inskomp/18.Hvbat/MRM/INSS","command":"18.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.2481190991353,60.6879397848107]},"properties":{"SIDC":"SFGPUCI----E***","name":"182.Inskomp","fullname":"182.Bevkomp/18.Hvbat/MRM/INSS","command":"18.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.950573155785,60.6022297757445]},"properties":{"SIDC":"SFGPUCI----E***","name":"183.Bevkomp","fullname":"183.Bevkomp/18.Hvbat/MRM/INSS","command":"18.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.1491618529446,60.6869685133959]},"properties":{"SIDC":"SFGPUCI----E***","name":"184.Bevkomp","fullname":"184.Bevkomp/18.Hvbat/MRM/INSS","command":"18.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.3149184570537,60.7041912539079]},"properties":{"SIDC":"SFGPUCIN---D***","name":"185.Båtplut","fullname":"185.Båtplut/18.Hvbat/MRM/INSS","command":"18.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.9544316326947,60.5942398164611]},"properties":{"SIDC":"SFGPUCV----C***","name":"186.Flyggrp","fullname":"186.Flyggrp/18.Hvbat/MRM/INSS","command":"18.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.8344930025655,58.3095662564668]},"properties":{"SIDC":"SFGPUCIN---E***","name":"2.Amfkopmp","fullname":"2.Amfkopmp/1.Amfbat/INSS","command":"1.Amfbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.238582993542,59.0273709214064]},"properties":{"SIDC":"SFGPUCIZ--AH***","name":"2.Brig","fullname":"2.Brig/INSS","command":"INSS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.5257695946588,59.6080831533645]},"properties":{"SIDC":"SFGPU------E***","name":"2.C2 komp","fullname":"2.C2 komp/FTS/INSS","command":"FTS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.5999674748142,59.8939088257096]},"properties":{"SIDC":"SFGPUCI----F***","name":"21.Hvbat","fullname":"21.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.6127430007003,59.8793264746759]},"properties":{"SIDC":"SFGPUCI----E***","name":"211.Inskomp","fullname":"211.Inskomp/21.Hvbat/MRM/INSS","command":"21.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.6790891592872,59.8516064004869]},"properties":{"SIDC":"SFGPUCI----E***","name":"212.Inskomp","fullname":"212.Inskomp/21.Hvbat/MRM/INSS","command":"21.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.599908566094,59.8843330402968]},"properties":{"SIDC":"SFGPUCI----E***","name":"213.Bevkomp","fullname":"213.Bevkomp/21.Hvbat/MRM/INSS","command":"21.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.7617207065384,59.8337348887318]},"properties":{"SIDC":"SFGPUCR----E***","name":"214.Undkomp","fullname":"214.Undkomp/21.Hvbat/MRM/INSS","command":"21.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.6121638147886,59.5846318503743]},"properties":{"SIDC":"SFGPUCI---AF***","name":"22.Hvbat","fullname":"22.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.6430089244942,59.5925659173492]},"properties":{"SIDC":"SFGPUCI----E***","name":"221.Inskomp","fullname":"221.Inskomp/22.Hvbat/MRM/INSS","command":"22.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.4735776622532,59.5949156484754]},"properties":{"SIDC":"SFGPUCI----E***","name":"222.Inskomp","fullname":"222.Inskomp/22.Hvbat/MRM/INSS","command":"22.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.6352555986967,59.6089215756093]},"properties":{"SIDC":"SFGPUCI----E***","name":"223.Bevkomp","fullname":"223.Bevkomp/22.Hvbat/MRM/INSS","command":"22.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.87063109525,59.6173011010681]},"properties":{"SIDC":"SFGPUCI---AF***","name":"23.Hvbat","fullname":"23.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.5604585736757,59.5554732494588]},"properties":{"SIDC":"SFGPUCI----E***","name":"231.Insatskomp","fullname":"231.Insatskomp/23.Hvbat/MRM/INSS","command":"23.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.9310725132708,59.6491761113177]},"properties":{"SIDC":"SFGPUCI----E***","name":"232.Inskomp","fullname":"232.Inskomp/23.Hvbat/MRM/INSS","command":"23.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.0767771140349,59.5346781274677]},"properties":{"SIDC":"SFGPUCI----E***","name":"233.Bevkomp","fullname":"233.Bevkomp/23.Hvbat/MRM/INSS","command":"23.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.0421139475026,59.6823055916381]},"properties":{"SIDC":"SFGPUCR----E***","name":"234.Undkomp","fullname":"234.Undkomp/231.Insatskomp/23.Hvbat/MRM/INSS","command":"231.Insatskomp"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.0047624165287,59.3682656063121]},"properties":{"SIDC":"SFGPUCI----F***","name":"24.Hvbat","fullname":"24.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.0582952723693,59.3437207025862]},"properties":{"SIDC":"SFGPUCI----E***","name":"241.Inskomp","fullname":"241.Inskomp/24.Hvbat/MRM/INSS","command":"24.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.0427345876287,59.3878935131493]},"properties":{"SIDC":"SFGPUCI----E***","name":"242.Inskomp","fullname":"242.Inskomp/24.Hvbat/MRM/INSS","command":"24.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.9887873122416,59.3679806773642]},"properties":{"SIDC":"SFGPUCI----E***","name":"243.Bevkomp","fullname":"243.Bevkomp/24.Hvbat/MRM/INSS","command":"24.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.6525600727753,59.1758837474931]},"properties":{"SIDC":"SFGPUCI---AF***","name":"25.Hvbat","fullname":"25.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.5631993602988,59.1885260991916]},"properties":{"SIDC":"SFGPUCI----E***","name":"251.Inskomp","fullname":"251.Inskomp/25.Hvbat/MRM/INSS","command":"25.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.6425607048154,59.1849086466696]},"properties":{"SIDC":"SFGPUCI----E***","name":"252.Inskomp","fullname":"252.Inskomp/25.Hvbat/MRM/INSS","command":"25.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.96853711074,59.230339821515]},"properties":{"SIDC":"SFGPUCI----E***","name":"253.Bevkomp","fullname":"253.Bevkomp/25.Hvbat/MRM/INSS","command":"25.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.5888719568663,59.1482356463323]},"properties":{"SIDC":"SFGPUCV----C***","name":"254.Flygrp","fullname":"254.Flygrp/25.Hvbat/MRM/INSS","command":"25.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.8785925128308,59.4212404022248]},"properties":{"SIDC":"SFGPUCI----F***","name":"26.Hvbat","fullname":"26.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.7949588383521,59.4770735483453]},"properties":{"SIDC":"SFGPUCI----E***","name":"261.Inskomp","fullname":"261.Inskomp/26.Hvbat/MRM/INSS","command":"26.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.8500350117106,59.3225576100611]},"properties":{"SIDC":"SFGPUCI----E***","name":"262.Inskomp","fullname":"262.Inskomp/26.Hvbat/MRM/INSS","command":"26.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.5448433996879,59.5639094709462]},"properties":{"SIDC":"SFGPUCI----E***","name":"263.Bevkomp","fullname":"263.Bevkomp/26.Hvbat/MRM/INSS","command":"26.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.9251348976686,58.788897275522]},"properties":{"SIDC":"SFGPUCI---AF***","name":"27.Hvbat","fullname":"27.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.3371891732959,59.4451412409949]},"properties":{"SIDC":"SFGPUCI----E***","name":"271.Inskomp","fullname":"271.Inskomp/27.Hvbat/MRM/INSS","command":"27.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.082800659594,58.6782294848051]},"properties":{"SIDC":"SFGPUCI----E***","name":"272.Inskomp","fullname":"272.Inskomp/27.Hvbat/MRM/INSS","command":"27.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.0006536972256,59.3832532426125]},"properties":{"SIDC":"SFGPUCI----E***","name":"273.Bevkomp","fullname":"273.Bevkomp/27.Hvbat/MRM/INSS","command":"27.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[16.9079560228281,58.7870863572724]},"properties":{"SIDC":"SFGPUCI----E***","name":"274.Bevkomp","fullname":"274.Bevkomp/27.Hvbat/MRM/INSS","command":"27.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.1100925705783,58.6576254848673]},"properties":{"SIDC":"SFGPUCIN---D***","name":"275.Båtplut","fullname":"275.Båtplut/27.Hvbat/MRM/INSS","command":"27.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.6949238081347,59.7329226388356]},"properties":{"SIDC":"SFGPUCVF---C***","name":"276.Flygrp","fullname":"276.Flygrp/27.Hvbat/MRM/INSS","command":"27.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.918446596707,59.7527539262468]},"properties":{"SIDC":"SFGPUCI---AF***","name":"28.Hvbat","fullname":"28.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[19.0745672792682,59.7522865395695]},"properties":{"SIDC":"SFGPUCI----E***","name":"281.Inskomp","fullname":"281.Inskomp/28.Hvbat/MRM/INSS","command":"28.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.404457393663,59.4733011004266]},"properties":{"SIDC":"SFGPUCI----E***","name":"282.Inskomp","fullname":"282.Inskomp/28.Hvbat/MRM/INSS","command":"28.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.7611861642108,60.1721322504235]},"properties":{"SIDC":"SFGPUCI----E***","name":"283.Bevkomp","fullname":"283.Bevkomp/28.Hvbat/MRM/INSS","command":"28.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.9200740471087,59.659477110883]},"properties":{"SIDC":"SFGPUCIN---D***","name":"285.Båtplut","fullname":"285.Båtplut/28.Hvbat/MRM/INSS","command":"28.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.1478042099952,59.0133940148515]},"properties":{"SIDC":"SFGPUCI---AF***","name":"29.Hvbat","fullname":"29.Hvbat/MRM/INSS","command":"MRM"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.9474091680565,58.9007367380092]},"properties":{"SIDC":"SFGPUCI----E***","name":"291.Inskomp","fullname":"291.Inskomp/29.Hvbat/MRM/INSS","command":"29.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.9123833108742,58.978425556121]},"properties":{"SIDC":"SFGPUCI----E***","name":"292.Inskomp","fullname":"292.Inskomp/29.Hvbat/MRM/INSS","command":"29.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.13004786866,59.00328613617]},"properties":{"SIDC":"SFGPUCI---AE***","name":"293.Bevkomp","fullname":"293.Bevkomp/29.Hvbat/MRM/INSS","command":"29.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.1466322493951,59.0055778253211]},"properties":{"SIDC":"SFGPUCIN---E***","name":"294.Båtkomp","fullname":"294.Båtkomp/29.Hvbat/MRM/INSS","command":"29.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.81232094932,59.0132052680749]},"properties":{"SIDC":"SFGPUCVF---C***","name":"295.Flyggrp","fullname":"295.Flyggrp/29.Hvbat/MRM/INSS","command":"29.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.9630401612886,58.9201421392025]},"properties":{"SIDC":"SFGPUUA----D***","name":"296.CBRN-plut","fullname":"296.CBRN-plut/29.Hvbat/MRM/INSS","command":"29.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[17.0912400648531,59.6752503667144]},"properties":{"SIDC":"SFGPUCIZ--AH***","name":"3.Brig","fullname":"3.Brig/INSS","command":"INSS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.3757960465676,57.6593216201101]},"properties":{"SIDC":"SFGPUCI----F***","name":"32.Hvbat","fullname":"32.Hvbat/ROL/INSS","command":"ROL"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[14.5083138429234,58.5267401451999]},"properties":{"SIDC":"SFGPUCR----F***","name":"32.Undbat","fullname":"32.Undbat/INSS","command":"INSS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.339848149358,57.6629965607029]},"properties":{"SIDC":"SFGPUCI----E***","name":"321.Bevkomp","fullname":"321.Bevkomp/32.Hvbat/MRM/INSS","command":"32.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.7849567501258,57.7144456428729]},"properties":{"SIDC":"SFGPUCI----E***","name":"322.Bevkomp","fullname":"322.Bevkomp/32.Hvbat/MRM/INSS","command":"32.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.8380782160119,57.6871504761097]},"properties":{"SIDC":"SFGPUCIN---D***","name":"323.Båtplut","fullname":"323.Båtplut/32.Hvbat/MRM/INSS","command":"32.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.3764345279372,57.680341585177]},"properties":{"SIDC":"SFGPUCI----E***","name":"324.Inskomp","fullname":"324.Inskomp/32.Hvbat/MRM/INSS","command":"32.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[18.3288080139839,57.6513690562457]},"properties":{"SIDC":"SFGPUCVF---C***","name":"325.Flyggrp","fullname":"325.Flyggrp/32.Hvbat/MRM/INSS","command":"32.Hvbat"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[12.9062389032177,56.6929160077324]},"properties":{"SIDC":"SFGPUCD----F***","name":"61.Lvbat","fullname":"61.Lvbat/INSS","command":"INSS"}}
|
||||
,{"type":"Feature","geometry":{"type":"Point","coordinates":[12.8927072589139,56.6451408696477]},"properties":{"SIDC":"SFGPUCD----F***","name":"62.Lvbat","fullname":"62.Lvbat/INSS","command":"INSS"}}
|
||||
]}
|
||||
46
node_modules/milsymbol/examples/speed-canvas/index.html
generated
vendored
Normal file
BIN
node_modules/milsymbol/examples/speed-canvas/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 305 KiB |
3
node_modules/milsymbol/examples/speed-canvas/readme.md
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
## Canvas Speed Example
|
||||
|
||||
This shows the speed of milsymbol and contains one example for **Canvas rendering**. It will render 1000 symbols with or without text fields and display the time it takes for milsymbol to generate the symbols. The example will repeat every three seconds to simulate new input to the system, this will also show milsymbols capability to populate the symbol cache and improve speed for each iteration.
|
||||
44
node_modules/milsymbol/examples/speed-svg/index.html
generated
vendored
Normal file
BIN
node_modules/milsymbol/examples/speed-svg/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 245 KiB |
3
node_modules/milsymbol/examples/speed-svg/readme.md
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
## SVG Speed Example
|
||||
|
||||
This shows the speed of milsymbol and contains one example for **SVG rendering**. It will render 1000 symbols with or without text fields and display the time it takes for milsymbol to generate the symbols. The example will repeat every three seconds to simulate new input to the system, this will also show milsymbols capability to populate the symbol cache and improve speed for each iteration.
|
||||
248
node_modules/milsymbol/examples/style/index.html
generated
vendored
Normal file
@@ -0,0 +1,248 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<script src="../../dist/milsymbol.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<center>
|
||||
Base symbol without any special style settings <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol("sfgpewrh--mt", {
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
}).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />
|
||||
Unframed symobl (notice the moved mobility indicator) <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ frame: false }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />
|
||||
Unfilled symbol (color changes automatically when unfilled) <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ fill: false }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />No info around symbol (information is set but not displayed) <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ infoFields: false }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />Set built in color mode <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ colorMode: "Dark" }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />Set custom color mode <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{
|
||||
colorMode: ms.ColorMode(
|
||||
"purple",
|
||||
"blue",
|
||||
"red",
|
||||
"green",
|
||||
"yellow"
|
||||
)
|
||||
}
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />Fill opacity <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ fillOpacity: 0.5 }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />Change info color <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ infoColor: "lightgray" }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />Change info font <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ fontfamily: "times" }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />Change info size <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ infoSize: 60 }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />
|
||||
Set symbol outline <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ outlineColor: "yellow", outlineWidth: 5 }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />Set info background <br />
|
||||
<script>
|
||||
document.write(
|
||||
new ms.Symbol(
|
||||
"sfgpewrh--mt",
|
||||
{
|
||||
size: 35,
|
||||
quantity: 200,
|
||||
staffComments: "for reinforcements".toUpperCase(),
|
||||
additionalInformation: "added support for JJ".toUpperCase(),
|
||||
type: "machine gun".toUpperCase(),
|
||||
dtg: "30140000ZSEP97",
|
||||
location: "0900000.0E570306.0N"
|
||||
},
|
||||
{ infoBackground: "black", infoColor: "white" }
|
||||
).asSVG()
|
||||
);
|
||||
</script>
|
||||
<br />
|
||||
<br />
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
BIN
node_modules/milsymbol/examples/style/preview.png
generated
vendored
Normal file
|
After Width: | Height: | Size: 146 KiB |
3
node_modules/milsymbol/examples/style/readme.md
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
## Style
|
||||
|
||||
This shows some, but not all, style options that can be set for a milsymbol symbol.
|
||||
223
node_modules/milsymbol/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,223 @@
|
||||
type ColorMode = {
|
||||
Civilian: string;
|
||||
Friend: string;
|
||||
Hostile: string;
|
||||
Neutral: string;
|
||||
Unknown: string;
|
||||
};
|
||||
|
||||
type SymbolOptions = {
|
||||
additionalInformation?: string;
|
||||
alternateMedal?: boolean;
|
||||
altitudeDepth?: string;
|
||||
auxiliaryEquipmentIndicator?: string;
|
||||
civilianColor?: boolean;
|
||||
colorMode?: ColorMode | string;
|
||||
combatEffectiveness?: string;
|
||||
commonIdentifier?: string;
|
||||
country?: string;
|
||||
direction?: string;
|
||||
dtg?: string;
|
||||
engagementBar?: string;
|
||||
engagementType?: string;
|
||||
equipmentTeardownTime?: string;
|
||||
evaluationRating?: string;
|
||||
fill?: boolean;
|
||||
fillOpacity?: number;
|
||||
fontfamily?: string;
|
||||
frame?: boolean;
|
||||
frameColor?: ColorMode;
|
||||
guardedUnit?: string;
|
||||
headquartersElement?: string;
|
||||
higherFormation?: string;
|
||||
hostile?: string;
|
||||
hqStaffLength?: number;
|
||||
icon?: boolean;
|
||||
iconColor?: ColorMode | string;
|
||||
iffSif?: string;
|
||||
infoBackground?: ColorMode | string;
|
||||
infoBackgroundFrame?: ColorMode | string;
|
||||
infoColor?: ColorMode | string;
|
||||
infoFields?: boolean;
|
||||
infoOutlineColor?: string;
|
||||
infoOutlineWidth?: number;
|
||||
infoSize?: number;
|
||||
installationComposition?: string;
|
||||
location?: string;
|
||||
monoColor?: string;
|
||||
outlineColor?: ColorMode | string;
|
||||
outlineWidth?: number;
|
||||
padding?: number;
|
||||
platformType?: string;
|
||||
quantity?: string;
|
||||
reinforcedReduced?: string;
|
||||
sidc?: string;
|
||||
sigint?: string;
|
||||
signatureEquipment?: string;
|
||||
simpleStatusModifier?: boolean;
|
||||
size?: number;
|
||||
specialDesignator?: string;
|
||||
specialHeadquarters?: string;
|
||||
speed?: string;
|
||||
speedLeader?: number;
|
||||
square?: boolean;
|
||||
staffComments?: string;
|
||||
standard?: string;
|
||||
strokeWidth?: number;
|
||||
type?: string;
|
||||
uniqueDesignation?: string;
|
||||
};
|
||||
|
||||
type BaseAffiliation = "" | "Hostile" | "Friend" | "Neutral" | "Unknown";
|
||||
type Affiliation = "undefined" | BaseAffiliation;
|
||||
|
||||
type Context = "Reality" | "Exercise" | "Simulation";
|
||||
|
||||
// Dimension it belongs to (Air/Ground...)
|
||||
type BaseDimension = "" | "Air" | "Ground" | "Sea" | "Subsurface";
|
||||
// Dimension it is shown as (Air/Ground...) for example Ground Equipment is shown with the same shape as Sea.
|
||||
type Dimension = "undefined" | "LandDismountedIndividual" | BaseDimension;
|
||||
|
||||
// What condition is it in
|
||||
type Condition = "" | "Present" | "Planned" | "FullyCapable" | "Damaged" | "Destroyed" | "FullToCapacity";
|
||||
|
||||
type Echelon =
|
||||
""
|
||||
| "Team/Crew"
|
||||
| "Squad"
|
||||
| "Section"
|
||||
| "Platoon/detachment"
|
||||
| "Company/battery/troop"
|
||||
| "Battalion/squadron"
|
||||
| "Regiment/group"
|
||||
| "Brigade"
|
||||
| "Division"
|
||||
| "Corps/MEF"
|
||||
| "Army"
|
||||
| "Army Group/front"
|
||||
| "Region/Theater"
|
||||
| "Command";
|
||||
|
||||
type Mobility =
|
||||
""
|
||||
| "Wheeled limited cross country"
|
||||
| "Wheeled cross country"
|
||||
| "Tracked"
|
||||
| "Wheeled and tracked combination"
|
||||
| "Towed"
|
||||
| "Rail"
|
||||
| "Pack animals"
|
||||
| "Over snow (prime mover)"
|
||||
| "Sled"
|
||||
| "Barge"
|
||||
| "Amphibious"
|
||||
| "Short towed array"
|
||||
| "Long towed Array";
|
||||
|
||||
type Leadership = "Leader Individual" | "Deputy Individual";
|
||||
|
||||
type SymbolMetadata = {
|
||||
activity: boolean; // Is it an Activity
|
||||
affiliation: Affiliation; // Affiliation it is shown as (Friend/Hostile...)
|
||||
baseAffilation: BaseAffiliation; // Affiliation it belongs to (Friend/Hostile...)
|
||||
baseDimension: BaseDimension; // Dimension it belongs to (Air/Ground...)
|
||||
baseGeometry: Object; // Geometry is a combination of dimension and affiliation (AirFriend/GroundHostile...)
|
||||
civilian: boolean; // Is it Civilian
|
||||
condition: Condition; // What condition is it in
|
||||
context: Context; // Context of the symbol (Reality/Exercise...)
|
||||
dimension: Dimension; // Dimension it is shown as (Air/Ground...) for example Ground Equipment is shown with the same shape as Sea.
|
||||
dimensionUnknown: boolean; // Is the dimension unknown
|
||||
dismounted?: boolean; // Land Dismounted Individual should have special icons
|
||||
echelon: Echelon; //What echelon (Platoon/Company...)
|
||||
faker: boolean; // Is it a Faker
|
||||
fenintDummy: boolean; // Is it a feint/dummy
|
||||
fill: boolean; // Standard says it should be filled
|
||||
frame: boolean; // Standard says it should be framed
|
||||
functionid: string; // Part of SIDC referring to the icon.
|
||||
headquarters: boolean; // Is it a Headquarters
|
||||
installation: boolean; // Is it an Instalation
|
||||
joker: boolean; // Is it a Joker
|
||||
leadership?: Leadership;
|
||||
mobility?: Mobility; // What mobility (Tracked/Sled...)
|
||||
notpresent: string; // Is it Anticipated or Pending
|
||||
numberSIDC: boolean; // Is the SIDC number based
|
||||
space: boolean; // Is it in Space
|
||||
taskForce: boolean; // Is it a task force
|
||||
unit: boolean; // Is this equipment or not
|
||||
};
|
||||
|
||||
type SymbolColors = {
|
||||
black: ColorMode; // Black parts of the symbol.
|
||||
fillColor: ColorMode; // Symbol fill color.
|
||||
frameColor: ColorMode; // Symbol frame color.
|
||||
iconColor: ColorMode; // Icon color.
|
||||
iconFillColor: ColorMode; // Icon fill color.
|
||||
none: ColorMode; // Transparent parts of the symbol.
|
||||
white: ColorMode; // White parts of the symbol.
|
||||
};
|
||||
|
||||
export class Symbol {
|
||||
constructor(
|
||||
code: string | SymbolOptions,
|
||||
...options: SymbolOptions[]
|
||||
);
|
||||
|
||||
asCanvas(factor?: number): HTMLCanvasElement;
|
||||
asDOM(): Element;
|
||||
asSVG(): string;
|
||||
getAnchor(): { x: number; y: number };
|
||||
getColors(): SymbolColors;
|
||||
getOctagonAnchor(): { x: number; y: number };
|
||||
getOptions(includeStyle?: boolean): SymbolOptions;
|
||||
getMetadata(): SymbolMetadata;
|
||||
getSize(): { width: number; height: number };
|
||||
getStyle(): SymbolOptions;
|
||||
isValid(extended?: boolean): boolean | Object;
|
||||
setOptions(opts: SymbolOptions): Symbol;
|
||||
toDataURL(): string;
|
||||
}
|
||||
|
||||
interface Box {
|
||||
x1: number,
|
||||
y1: number,
|
||||
x2: number,
|
||||
y2: number,
|
||||
}
|
||||
|
||||
interface BBoxObject extends Box {
|
||||
width(): number,
|
||||
height(): number,
|
||||
/** Merges one box with another returns the original box */
|
||||
merge(box: Box): this
|
||||
}
|
||||
/** Creates a bounding box object */
|
||||
export function BBox(box?: Partial<Box>): BBoxObject;
|
||||
|
||||
/** Creates a ColorMode Object with colors used for different affiliations. */
|
||||
export function ColorMode(civilian: string, friend: string, hostile: string, neutral: string, unknown: string): ColorMode;
|
||||
/** Gets a color mode that has been registred with setColorMode */
|
||||
export function getColorMode(mode: string): ColorMode;
|
||||
/** Register a ColorMode with a name or override an existing ColorMode. */
|
||||
export function setColorMode(name: string, colormode: ColorMode): ColorMode;
|
||||
|
||||
/** Gets the length of the HQ staf used for HQ symbols. */
|
||||
export function getHqStaffLength(): number;
|
||||
/** Sets the length of the HQ staf used for HQ symbols. */
|
||||
export function setHqStaffLength(staff_length: number): number;
|
||||
|
||||
|
||||
interface DashObject {
|
||||
pending: string,
|
||||
anticipated: string,
|
||||
feintDummy: string
|
||||
}
|
||||
/** Gets the diffrent dash arrays used for dashed lines. */
|
||||
export function getDashArrays(): DashObject;
|
||||
/** Sets the dash arrays used for dashed lines */
|
||||
export function setDashArrays(pending: string, anticipated: string, feintDummy: string): DashObject;
|
||||
|
||||
// Gets the version of milsymbol.
|
||||
export function getVersion(): string;
|
||||
|
||||
/** Sets the preferred standard. */
|
||||
export function setStandard(standard: "2525" | "APP6"): boolean;
|
||||
77
node_modules/milsymbol/index.esm.js
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
/* ***************************************************************************************
|
||||
ES6 version of milsymbol
|
||||
*************************************************************************************** */
|
||||
export { ms } from "./src/milsymbol.js";
|
||||
export { app6b, std2525b, std2525c } from "./src/lettersidc.js";
|
||||
export {
|
||||
space as letterspace,
|
||||
air as letterair,
|
||||
ground as letterground,
|
||||
equipment as letterequipment,
|
||||
installations as letterinstallations,
|
||||
sea as lettersea,
|
||||
subsurface as lettersubsurface,
|
||||
sof as lettersof,
|
||||
signalsIntelligence as lettersignalsIntelligence,
|
||||
stabilityoperations as letterstabilityoperations,
|
||||
emergencymanagementsymbols as letteremergencymanagementsymbols,
|
||||
std2525bextra as letterstd2525bextra,
|
||||
tacticalpoints2525 as lettertacticalpoints2525,
|
||||
tacticalpointsapp6 as lettertacticalpointsapp6
|
||||
} from "./src/lettersidc.js";
|
||||
export { app6d, std2525d } from "./src/numbersidc.js";
|
||||
export {
|
||||
air as numberair,
|
||||
airmissile as numberairmissile,
|
||||
space as numberspace,
|
||||
spacemissile as numberspacemissile,
|
||||
landunit as numberlandunit,
|
||||
landcivilian as numberlandcivilian,
|
||||
landequipment as numberlandequipment,
|
||||
landinstallation as numberlandinstallation,
|
||||
sea as numbersea,
|
||||
subsurface as numbersubsurface,
|
||||
minewarfare as numberminewarfare,
|
||||
activites as numberactivites,
|
||||
signalsintelligence as numbersignalsintelligence,
|
||||
cyberspace as numbercyberspace,
|
||||
dismountedindividual as numberdismountedindividual,
|
||||
tacticalpoints as numbertacticalpoints
|
||||
} from "./src/numbersidc.js";
|
||||
export { default as path2d } from "./src/ms/path2d.js";
|
||||
|
||||
/* ***************************************************************************************
|
||||
ES6 version of milsymbol
|
||||
******************************************************************************************
|
||||
To import all and have the same functionality as ordinary milsymbol, do the following:
|
||||
(Or just import the things that you need)
|
||||
|
||||
import {
|
||||
ms, // Base for milsymbol
|
||||
app6b, // APP6-B
|
||||
std2525b, // 2525B
|
||||
std2525c, // 2525C
|
||||
app6d, // APP6-D
|
||||
std2525d, // 2525D
|
||||
path2d // Pollyfill for Path2D in IE or node-canvas
|
||||
} from "./index.esm.js";
|
||||
|
||||
ms.addIcons(app6b);
|
||||
ms.addIcons(std2525b);
|
||||
ms.addIcons(std2525c);
|
||||
ms.addIcons(app6d);
|
||||
ms.addIcons(std2525d);
|
||||
ms.Path2D = path2d;
|
||||
|
||||
|
||||
******************************************************************************************
|
||||
Minimal version only supporting number based SIDC for land equipment:
|
||||
|
||||
import {
|
||||
ms,
|
||||
numberlandequipment
|
||||
} from "./index.esm.js";
|
||||
|
||||
ms.addIcons(numberlandequipment);
|
||||
|
||||
*/
|
||||
31
node_modules/milsymbol/index.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
/* ***************************************************************************************
|
||||
Creating the base of milsymbol
|
||||
******************************************************************************************
|
||||
To import all and have the same functionality as ordinary milsymbol, do the following:
|
||||
(Or just import the things that you need)
|
||||
*/
|
||||
|
||||
import {
|
||||
ms, // Base for milsymbol
|
||||
app6b, // APP6-B
|
||||
std2525b, // 2525B
|
||||
std2525c, // 2525C
|
||||
app6d, // APP6-D
|
||||
std2525d, // 2525D
|
||||
path2d // Pollyfill for Path2D in IE or node-canvas
|
||||
} from "./index.esm.js";
|
||||
|
||||
ms.addIcons(app6b);
|
||||
ms.addIcons(std2525b);
|
||||
ms.addIcons(std2525c);
|
||||
ms.addIcons(app6d);
|
||||
ms.addIcons(std2525d);
|
||||
ms.Path2D = path2d;
|
||||
|
||||
/* ***************************************************************************************
|
||||
This draws the symbol octagon, can be good for debugging.
|
||||
*************************************************************************************** */
|
||||
//import debug from "./symbolfunctions/debug.js";
|
||||
//ms.addSymbolPart(debug);
|
||||
|
||||
export default ms;
|
||||
48
node_modules/milsymbol/package.json
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"name": "milsymbol",
|
||||
"version": "2.2.0",
|
||||
"description": "Milsymbol.js is a small library in pure javascript that creates symbols according to MIL-STD-2525 and APP6.",
|
||||
"main": "dist/milsymbol.js",
|
||||
"exports": "./index.js",
|
||||
"types": "index.d.ts",
|
||||
"directories": {
|
||||
"doc": "docs",
|
||||
"example": "examples"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint src test --fix",
|
||||
"prebuild": "npm run lint && npm test",
|
||||
"build": "npm run bundle && npm run minify",
|
||||
"build-amd": "npm run bundle-amd && npm run minify-amd",
|
||||
"bundle": "rollup -c",
|
||||
"bundle-amd": "rollup -c rollup.config.amd.js",
|
||||
"minify": "uglifyjs dist/milsymbol.development.js -o dist/milsymbol.js --comments --compress --mangle --source-map",
|
||||
"minify-amd": "uglifyjs dist/amd/milsymbol.development.js -o dist/amd/milsymbol.js --comments --compress --mangle --source-map",
|
||||
"test": "tead --coverage"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatialillusions/milsymbol"
|
||||
},
|
||||
"author": "Måns Beckman (http://www.spatialillusions.com)",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/spatialillusions/milsymbol/issues"
|
||||
},
|
||||
"homepage": "https://github.com/spatialillusions/milsymbol",
|
||||
"devDependencies": {
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-prettier": "^3.4.1",
|
||||
"mil-std-2525": "^0.2.5",
|
||||
"milstd": "^0.1.6",
|
||||
"prettier": "^1.19.1",
|
||||
"rollup": "^0.58.2",
|
||||
"rollup-plugin-copy": "^0.2.3",
|
||||
"stanag-app6": "^0.2.0",
|
||||
"tead": "^0.5.3",
|
||||
"uglify-js": "^3.17.4"
|
||||
},
|
||||
"babel": {
|
||||
"presets": "env"
|
||||
}
|
||||
}
|
||||
44
node_modules/milsymbol/rollup.config.amd.js
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
import copy from "rollup-plugin-copy";
|
||||
export default [
|
||||
{
|
||||
input: "index.js",
|
||||
output: {
|
||||
file: "dist/amd/milsymbol.development.js",
|
||||
format: "amd",
|
||||
banner:
|
||||
"/**!\n" +
|
||||
"* @license\n" +
|
||||
"* The MIT License (MIT)\n" +
|
||||
"* \n" +
|
||||
"* Copyright (c) 2017 Måns Beckman - www.spatialillusions.com\n" +
|
||||
"* \n" +
|
||||
"* Permission is hereby granted, free of charge, to any person obtaining a copy\n" +
|
||||
'* of this software and associated documentation files (the "Software"), to deal\n' +
|
||||
"* in the Software without restriction, including without limitation the rights\n" +
|
||||
"* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +
|
||||
"* copies of the Software, and to permit persons to whom the Software is\n" +
|
||||
"* furnished to do so, subject to the following conditions:\n" +
|
||||
"* \n" +
|
||||
"* The above copyright notice and this permission notice shall be included in all\n" +
|
||||
"* copies or substantial portions of the Software.\n" +
|
||||
"* \n" +
|
||||
'* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n' +
|
||||
"* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +
|
||||
"* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +
|
||||
"* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +
|
||||
"* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n" +
|
||||
"* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n" +
|
||||
"* SOFTWARE.\n" +
|
||||
"* \n" +
|
||||
"* More information can be found at www.spatialillusions.com \n" +
|
||||
"*/"
|
||||
},
|
||||
plugins: [
|
||||
copy({
|
||||
"node_modules/milstd2525/milstd2525.js": "docs/milstd-2525.js",
|
||||
"node_modules/stanagapp6/stanagapp6.js": "docs/stanag-app6.js",
|
||||
verbose: true
|
||||
})
|
||||
]
|
||||
}
|
||||
];
|
||||
49
node_modules/milsymbol/rollup.config.js
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
import copy from "rollup-plugin-copy";
|
||||
|
||||
export default [
|
||||
{
|
||||
input: "index.js",
|
||||
output: {
|
||||
file: "dist/milsymbol.development.js",
|
||||
format: "umd",
|
||||
amd: {
|
||||
id: "milsymbol"
|
||||
},
|
||||
banner:
|
||||
"/**!\n" +
|
||||
"* @license\n" +
|
||||
"* The MIT License (MIT)\n" +
|
||||
"* \n" +
|
||||
"* Copyright (c) 2017 Måns Beckman - www.spatialillusions.com\n" +
|
||||
"* \n" +
|
||||
"* Permission is hereby granted, free of charge, to any person obtaining a copy\n" +
|
||||
'* of this software and associated documentation files (the "Software"), to deal\n' +
|
||||
"* in the Software without restriction, including without limitation the rights\n" +
|
||||
"* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +
|
||||
"* copies of the Software, and to permit persons to whom the Software is\n" +
|
||||
"* furnished to do so, subject to the following conditions:\n" +
|
||||
"* \n" +
|
||||
"* The above copyright notice and this permission notice shall be included in all\n" +
|
||||
"* copies or substantial portions of the Software.\n" +
|
||||
"* \n" +
|
||||
'* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n' +
|
||||
"* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +
|
||||
"* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +
|
||||
"* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +
|
||||
"* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n" +
|
||||
"* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n" +
|
||||
"* SOFTWARE.\n" +
|
||||
"* \n" +
|
||||
"* More information can be found at www.spatialillusions.com \n" +
|
||||
"*/",
|
||||
name: "ms"
|
||||
},
|
||||
plugins: [
|
||||
copy({
|
||||
"node_modules/mil-std-2525/milstd2525.js": "docs/milstd-2525.js",
|
||||
"node_modules/stanag-app6/stanagapp6.js": "docs/stanag-app6.js",
|
||||
verbose: true
|
||||
})
|
||||
]
|
||||
}
|
||||
];
|
||||
69
node_modules/milsymbol/src/colormodes.js
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
/* ***************************************************************************************
|
||||
Default color modes
|
||||
*************************************************************************************** */
|
||||
|
||||
export default {
|
||||
Black: {
|
||||
Civilian: "black",
|
||||
Friend: "black",
|
||||
Hostile: "black",
|
||||
Neutral: "black",
|
||||
Unknown: "black"
|
||||
},
|
||||
Dark: {
|
||||
Civilian: "rgb(80,0,80)",
|
||||
Friend: "rgb(0,107,140)",
|
||||
Hostile: "rgb(200,0,0)",
|
||||
Neutral: "rgb(0,160,0)",
|
||||
Unknown: "rgb(225,220,0)"
|
||||
},
|
||||
FrameColor: {
|
||||
Civilian: "rgb(255,0,255)",
|
||||
Friend: "rgb(0, 255, 255)",
|
||||
Hostile: "rgb(255, 0, 0)",
|
||||
Neutral: "rgb(0, 255, 0)",
|
||||
Unknown: "rgb(255, 255, 0)"
|
||||
},
|
||||
IconColor: {
|
||||
Civilian: "rgb(255,0,255)",
|
||||
Friend: "rgb(0, 255, 255)",
|
||||
Hostile: "rgb(255, 0, 0)",
|
||||
Neutral: "rgb(0, 255, 0)",
|
||||
Unknown: "rgb(255, 255, 0)"
|
||||
},
|
||||
Light: {
|
||||
Civilian: "rgb(255,161,255)",
|
||||
Friend: "rgb(128,224,255)",
|
||||
Hostile: "rgb(255,128,128)",
|
||||
Neutral: "rgb(170,255,170)",
|
||||
Unknown: "rgb(255,255,128)"
|
||||
},
|
||||
Medium: {
|
||||
Civilian: "rgb(128,0,128)",
|
||||
Friend: "rgb(0,168,220)",
|
||||
Hostile: "rgb(255,48,49)",
|
||||
Neutral: "rgb(0,226,110)",
|
||||
Unknown: "rgb(255,255,0)"
|
||||
},
|
||||
None: {
|
||||
Civilian: false,
|
||||
Friend: false,
|
||||
Hostile: false,
|
||||
Neutral: false,
|
||||
Unknown: false
|
||||
},
|
||||
OffWhite: {
|
||||
Civilian: "rgb(239, 239, 239)",
|
||||
Friend: "rgb(239, 239, 239)",
|
||||
Hostile: "rgb(239, 239, 239)",
|
||||
Neutral: "rgb(239, 239, 239)",
|
||||
Unknown: "rgb(239, 239, 239)"
|
||||
},
|
||||
White: {
|
||||
Civilian: "white",
|
||||
Friend: "white",
|
||||
Hostile: "white",
|
||||
Neutral: "white",
|
||||
Unknown: "white"
|
||||
}
|
||||
};
|
||||
74
node_modules/milsymbol/src/iconparts/2525b.js
generated
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
import { defaultProperties } from "./iconparts-functions.js";
|
||||
|
||||
export default function(
|
||||
iconParts,
|
||||
metadata,
|
||||
colors,
|
||||
STD2525,
|
||||
monoColor,
|
||||
alternateMedal
|
||||
) {
|
||||
// 2525B extra icon parts
|
||||
/*
|
||||
iconParts
|
||||
The existing object of icon parts
|
||||
|
||||
metadata
|
||||
properties object
|
||||
|
||||
colors
|
||||
color object
|
||||
|
||||
STD2525
|
||||
Is it 2525 then true, otherwise false
|
||||
|
||||
alternateMedal
|
||||
true/false for sea mine stuff
|
||||
*/
|
||||
|
||||
var affiliation = metadata.affiliation || "Friend";
|
||||
//If hostile and not monoColor, make it red, otherwise use the iconColor.
|
||||
var iconColor = colors.iconColor[affiliation];
|
||||
|
||||
//var numberSIDC = metadata.numberSIDC;
|
||||
var icn = {};
|
||||
|
||||
icn["2525B.ASWSUB"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 80,85 40,0 0,-20 -40,0 z m 20,-30 0,40 m -40,15 15,15 50,0 15,-15 -15,-15 -50,0 z"
|
||||
}; //WAR.SBSUF.SUB.STN.ASWSUB
|
||||
icn["2525B.NCBTT.STN"] = [
|
||||
{ type: "path", fill: false, d: "m 70,85 60,0 0,30 -60,0 z m 30,-15 0,60" },
|
||||
{ type: "text", stroke: false, x: 100, y: 145, fontsize: 30, text: "NC" }
|
||||
]; //WAR.SSUF.NCBTT.STN
|
||||
icn["2525B.STN.ASWSHP"] = [
|
||||
{ type: "path", fill: false, d: "m 70,85 60,0 0,30 -60,0 z m 30,-15 0,60" },
|
||||
{ type: "text", stroke: false, x: 100, y: 145, fontsize: 30, text: "AS" }
|
||||
]; //WAR.SSUF.CBTT.STN.ASWSHP
|
||||
icn["2525B.STN.PKT"] = [
|
||||
{ type: "path", fill: false, d: "m 70,85 60,0 0,30 -60,0 z m 30,-15 0,60" },
|
||||
{ type: "text", stroke: false, x: 100, y: 145, fontsize: 30, text: "PK" }
|
||||
]; //WAR.SSUF.CBTT.STN.PKT
|
||||
icn["2525B.STN.RSC"] = [
|
||||
{ type: "path", fill: false, d: "m 70,85 60,0 0,30 -60,0 z m 30,-15 0,60" },
|
||||
{ type: "text", stroke: false, x: 100, y: 145, fontsize: 30, text: "RS" }
|
||||
]; //WAR.SSUF.NCBTT.STN.RSC
|
||||
icn["2525B.STN"] = {
|
||||
type: "path",
|
||||
fill: false,
|
||||
d:
|
||||
"m 70,85 c 20,0 40,0 60,0 0,10 0,20 0,30 -20,0 -40,0 -60,0 0,-10 0,-20 0,-30 z m 30,-15 c 0,20 0,40 0,60 m 35,-5 C 120,148 82.7,149 66.8,126 49.2,105 59.1,69.2 85.2,60.1 103,53.1 124,59.4 135,74.8"
|
||||
}; //WAR.SSUF.CBTT.STN
|
||||
icn["2525B.SUB.STN"] = [
|
||||
{ type: "path", d: "m 70,85 60,0 0,30 -60,0 z m 30,-15 0,60" },
|
||||
{ type: "text", stroke: false, x: 100, y: 145, fontsize: 30, text: "SS" }
|
||||
]; //WAR.SBSUF.SUB.STN
|
||||
|
||||
for (var key in icn) {
|
||||
if (!icn.hasOwnProperty(key)) continue;
|
||||
if (iconParts.hasOwnProperty(key)) console.warn("Override of: " + key);
|
||||
defaultProperties.call(this, icn[key], iconColor);
|
||||
iconParts[key] = icn[key];
|
||||
}
|
||||
}
|
||||
526
node_modules/milsymbol/src/iconparts/air.js
generated
vendored
Normal file
@@ -0,0 +1,526 @@
|
||||
import {
|
||||
defaultProperties,
|
||||
text,
|
||||
textm1,
|
||||
textm2
|
||||
} from "./iconparts-functions.js";
|
||||
|
||||
export default function(
|
||||
iconParts,
|
||||
metadata,
|
||||
colors,
|
||||
STD2525,
|
||||
monoColor,
|
||||
alternateMedal
|
||||
) {
|
||||
/*
|
||||
iconParts
|
||||
The existing object of icon parts
|
||||
|
||||
metadata
|
||||
properties object
|
||||
|
||||
colors
|
||||
color object
|
||||
|
||||
STD2525
|
||||
Is it 2525 then true, otherwise false
|
||||
|
||||
alternateMedal
|
||||
true/false for sea mine stuff
|
||||
*/
|
||||
|
||||
var frame = metadata.frame;
|
||||
var affiliation = metadata.affiliation || "Friend";
|
||||
//var baseGeometry = metadata.baseGeometry;
|
||||
var numberSIDC = metadata.numberSIDC;
|
||||
//var fillColor = colors.fillColor[affiliation];
|
||||
var iconColor = colors.iconColor[affiliation];
|
||||
var iconFillColor = colors.iconFillColor[affiliation];
|
||||
// var none = colors.none[affiliation];
|
||||
var black = colors.black[affiliation];
|
||||
//var white = colors.white[affiliation];
|
||||
|
||||
//var numberSIDC = metadata.numberSIDC;
|
||||
var icn = {};
|
||||
|
||||
icn["AR.I.MILITARY"] = text("MIL");
|
||||
icn["AR.I.CIVILIAN"] = text("CIV");
|
||||
icn["AR.I.CIVILIAN"].fill =
|
||||
STD2525 || numberSIDC ? iconFillColor : !frame ? iconFillColor : false;
|
||||
icn["AR.I.CIVILIAN"].stroke = black;
|
||||
icn["AR.I.CIVILIAN"].strokewidth = 3;
|
||||
icn["AR.I.MILITARY FIXED WING"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"M100,100 L130,88 c15,0 15,24 0,24 L100,100 70,112 c-15,0 -15,-24 0,-24 Z"
|
||||
};
|
||||
icn["AR.I.CIVILIAN FIXED WING"] = {
|
||||
type: "path",
|
||||
fill: false,
|
||||
d:
|
||||
"M100,100 L130,88 c15,0 15,24 0,24 L100,100 70,112 c-15,0 -15,-24 0,-24 Z"
|
||||
};
|
||||
icn["AR.I.FF.CIVILIAN FIXED WING"] = {
|
||||
type: "path",
|
||||
stroke: black,
|
||||
d:
|
||||
"M62,80 l30,0 0,-10 16,0 0,10 30,0 0,15 -30,0 0,25 10,0 0,5 -36,0 0,-5 10,0 0,-25 -30,0 Z M95,70 l0,-5 10,0 0,5",
|
||||
fill: STD2525 ? iconFillColor : false
|
||||
};
|
||||
icn["AR.I.MILITARY ROTARY WING"] = {
|
||||
type: "path",
|
||||
d: "M60,85 l40,15 40,-15 0,30 -40,-15 -40,15 z"
|
||||
};
|
||||
icn["AR.I.CIVILIAN ROTARY WING"] = {
|
||||
type: "path",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
d: "M60,85 l40,15 40,-15 0,30 -40,-15 -40,15 z"
|
||||
};
|
||||
icn["AR.I.FF.CIVILIAN ROTARY WING"] = [
|
||||
{
|
||||
type: "path",
|
||||
stroke: black,
|
||||
d:
|
||||
"M80,70 l10,10 M120,110 l-10,-10 M80,110 l10,-10 M120,70 l-10,10 M100,115 l0,20 M95,135 l10,0",
|
||||
fill: false
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
stroke: black,
|
||||
fill: STD2525 ? iconFillColor : false,
|
||||
d:
|
||||
"m 113,90 c -0.3,8.8 -1.9,20.3 -10.8,24.6 -7.7,2 -12.3,-7.1 -13.8,-13.3 -2.6,-11.5 -2.3,-26 6.9,-34.6 6.0,-4.9 13.1,1.9 14.9,7.8 2,4.9 2.8,10.2 2.8,15.5 z"
|
||||
}
|
||||
];
|
||||
icn["AR.I.MILITARY BALLOON"] = [
|
||||
{ type: "circle", cx: 100, cy: 95, r: 15 },
|
||||
{ type: "path", d: "M95,110 l0,10 10,0 0,-10 z" }
|
||||
];
|
||||
icn["AR.I.FF.MILITARY BALLOON"] = [
|
||||
{ type: "path", d: "M90,115 l20,0 0,20 -20,0 z" },
|
||||
{ type: "circle", cx: 100, cy: 90, r: 35 }
|
||||
];
|
||||
icn["AR.I.CIVILIAN BALLOON"] = [
|
||||
{
|
||||
type: "circle",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
cx: 100,
|
||||
cy: 95,
|
||||
r: 15
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
d: "M95,110 l0,10 10,0 0,-10 z"
|
||||
}
|
||||
];
|
||||
icn["AR.I.FF.CIVILIAN BALLOON"] = [
|
||||
{
|
||||
type: "path",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
d: "M90,125 l20,0 0,10 -20,0 z"
|
||||
},
|
||||
{
|
||||
type: "circle",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
cx: 100,
|
||||
cy: 90,
|
||||
r: 35
|
||||
}
|
||||
];
|
||||
icn["AR.I.MILITARY AIRSHIP"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 110,110 10,10 10,0 -5,-15 m 0,-10 5,-15 -10,0 -10,10 m 17.2,10 c 0,6.1 -12.2,11.1 -27.2,11.1 -15,0 -27.2,-5 -27.2,-11.1 0,-6.1 12.2,-11.1 27.2,-11.1 15,0 27.2,5 27.2,11.1 z"
|
||||
};
|
||||
icn["AR.I.CIVILIAN AIRSHIP"] = {
|
||||
type: "path",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
d:
|
||||
"m 110,110 10,10 10,0 -5,-15 m 0,-10 5,-15 -10,0 -10,10 m 17.2,10 c 0,6.1 -12.2,11.1 -27.2,11.1 -15,0 -27.2,-5 -27.2,-11.1 0,-6.1 12.2,-11.1 27.2,-11.1 15,0 27.2,5 27.2,11.1 z"
|
||||
};
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"] = {
|
||||
type: "path",
|
||||
d: "m 60,84 40,20 40,-20 0,8 -40,25 -40,-25 z",
|
||||
stroke: false
|
||||
};
|
||||
icn["AR.I.AIR DECOY"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"M65,95 l15,-15 0,30 Z M92.5,95 l15,-15 0,30 Z M120,95 l15,-15 0,30 Z M65,120 l70,0 0,-5 -70,0 Z"
|
||||
};
|
||||
icn["SU.IC.AIR DECOY DSymbol"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"M 85 81 L 65 98 L 85 119 L 85 81 z M 110 81 L 90 98 L 110 119 L 110 81 z M 135 81 L 115 98 L 135 119 L 135 81 z"
|
||||
};
|
||||
icn["AR.I.MEDICAL EVACUATION"] = {
|
||||
type: "path",
|
||||
d: "M93,83 l14,0 0,10 10,0 0,14 -10,0 0,10 -14,0 0,-10 -10,0 0,-14 10,0 Z"
|
||||
};
|
||||
icn["AR.I.ATTACK/STRIKE"] = text("A");
|
||||
icn["AR.I.BOMBER"] = text("B");
|
||||
icn["AR.I.CARGO"] = text("C");
|
||||
icn["AR.I.ESCORT"] = text("E");
|
||||
icn["AR.I.FIGHTER"] = text("F");
|
||||
icn["AR.I.FIGHTER INTERCEPTOR"] = text("I");
|
||||
icn["AR.I.JAMMER / ELECTRONIC COUNTER-MEASURES"] = text("J");
|
||||
icn["AR.I.TANKER"] = text("K");
|
||||
icn["AR.I.PATROL"] = text("P");
|
||||
icn["AR.I.RECONNAISSANCE"] = text("R");
|
||||
icn["AR.I.2525 PHOTOGRAPHIC"] = text("X");
|
||||
icn["AR.I.TRAINER"] = text("T");
|
||||
icn["AR.I.UTILITY"] = text("U");
|
||||
icn["AR.I.VSTOL"] = text(STD2525 && !numberSIDC ? "L" : "V");
|
||||
icn["AR.I.AIRBORNE COMMAND POST"] =
|
||||
STD2525 && !numberSIDC ? text("D") : text("ACP");
|
||||
icn["AR.I.AIRBORNE EARLY WARNING"] =
|
||||
STD2525 && !numberSIDC ? text("W") : text("AEW");
|
||||
icn["AR.I.ANTISURFACE WARFARE"] =
|
||||
STD2525 && !numberSIDC ? text("N") : text("ASUW");
|
||||
icn["AR.I.ANTISUBMARINE WARFARE"] =
|
||||
STD2525 && !numberSIDC ? text("S") : text("ASW");
|
||||
icn["AR.I.COMMUNICATIONS"] = STD2525 && !numberSIDC ? text("Y") : text("COM");
|
||||
icn["AR.I.COMBAT SEARCH AND RESCUE"] = text("CSAR");
|
||||
icn["AR.I.ELECTRONIC SUPPORT MEASURES"] = STD2525 ? text("Z") : text("ESM");
|
||||
icn["AR.I.GOVERNMENT"] = text("GOV");
|
||||
icn["AR.I.MINE COUNTERMEASURES"] = text("MCM");
|
||||
icn["AR.I.PERSONNEL RECOVERY"] = STD2525 ? text("H") : text("PRO");
|
||||
icn["AR.I.PASSENGER"] = text("PX");
|
||||
icn["AR.I.SEARCH AND RESCUE"] = text("SAR");
|
||||
icn["AR.I.SUPRESSION OF ENEMY AIR DEFENCE"] = text("SEAD");
|
||||
icn["AR.I.SPECIAL OPERATIONS FORCES"] = text("SOF");
|
||||
icn["AR.I.ULTRA LIGHT"] = text("UL");
|
||||
icn["AR.I.VIP"] = text("VIP");
|
||||
icn["AR.I.FF.MILITARY FIXED WING"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 99.2,58.2 c -3,0.8 -2.5,5.8 -2.5,5.8 l -0.3,16 -37.2,36.5 1.3,4.6 L 96.7,96.6 97,128.6 l -8.5,8.2 0,4.6 9.3,-4.2 c 0.7,0.6 1.8,1.7 1.8,1.7 0,0 1.2,-1.1 1.9,-1.7 l 9.3,4.2 0,-4.6 -8.5,-8.2 0.3,-32 36.2,24.5 1.3,-4.6 -37.2,-36.5 -0.3,-16 c 0,0 0.5,-5 -2.5,-5.8 -0.4,-0.1 -0.7,-0.1 -1.1,0 z",
|
||||
stroke: false
|
||||
};
|
||||
//2525D
|
||||
icn["AR.I.FIXED-WING DSymbol"] = {
|
||||
type: "path",
|
||||
d: STD2525
|
||||
? "M 99.4 80.8 C 97.9 81.1 98.1 83.4 98.1 83.4 L 98 90.7 L 78.6 107.4 L 79.3 109.4 L 98.1 98.3 L 98.3 112.9 L 93.9 116.6 L 93.9 118.7 L 98.8 116.8 C 99.1 117 99.7 117.5 99.7 117.5 C 99.7 117.5 100.4 117 100.7 116.8 L 105.6 118.7 L 105.6 116.6 L 101.1 112.9 L 101.3 98.3 L 120.2 109.4 L 120.9 107.4 L 101.5 90.7 L 101.3 83.4 C 101.3 83.4 101.6 81.1 100 80.8 C 99.8 80.8 99.6 80.8 99.4 80.8 z"
|
||||
: "M100,100 L130,88 c15,0 15,24 0,24 L100,100 70,112 c-15,0 -15,-24 0,-24 Z"
|
||||
};
|
||||
icn["AR.I.CIVILIAN FIXED-WING DSymbol"] = {
|
||||
type: "path",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
d: STD2525
|
||||
? "m 75.1,90.3 19.6,0 0,-6.5 10.5,0 0,6.5 19.6,0 0,9.7 -19.6,0 0,16.2 6.5,0 0,3.2 -23.6,0 0,-3.2 6.5,0 0,-16.2 -19.6,0 z m 21.6,-6.5 0,-3.2 6.5,0 0,3.2"
|
||||
: "M100,100 L130,88 c15,0 15,24 0,24 L100,100 70,112 c-15,0 -15,-24 0,-24 Z"
|
||||
};
|
||||
icn["AR.I.FIGHTER/BOMBER"] = text("F/B");
|
||||
icn["AR.I.ELECTRONIC SUPPORT"] = STD2525 ? text("ES") : text("ESM");
|
||||
icn["AR.I.PERSONNEL RECOVERY DSymbol"] = text("PR");
|
||||
icn["AR.I.PHOTOGRAPHIC RECONNAISSANCE"] = text("PH");
|
||||
icn["AR.I.ELECTRONIC ATTACK (EA)"] = text("EA");
|
||||
icn["AR.I.VERTICAL-TAKEOFF UAV (VT-UAV)"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 70,85 30,10 30,-10 0,-5 -30,5 -30,-5 z m -10,5 40,15 40,-15 0,30 -40,-15 -40,15 z"
|
||||
};
|
||||
icn["AR.I.TETHERED LIGHTER THAN AIR"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"M 75,110 85,95 m -5,20 c 0,2.8 -2.2,5 -5,5 -2.8,0 -5,-2.2 -5,-5 0,-2.8 2.2,-5 5,-5 2.8,0 5,2.2 5,5 z m 15,-6 0,11 10,0 0,-11 m 10,-14 c 0,8.3 -6.7,15 -15,15 -8.3,0 -15,-6.7 -15,-15 0,-8.3 6.7,-15 15,-15 8.3,0 15,6.7 15,15 z"
|
||||
};
|
||||
icn["AR.I.CIVILIAN TETHERED LIGHTER THAN AIR"] = {
|
||||
type: "path",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
d:
|
||||
"M 75,110 85,95 m -5,20 c 0,2.8 -2.2,5 -5,5 -2.8,0 -5,-2.2 -5,-5 0,-2.8 2.2,-5 5,-5 2.8,0 5,2.2 5,5 z m 15,-6 0,11 10,0 0,-11 m 10,-14 c 0,8.3 -6.7,15 -15,15 -8.3,0 -15,-6.7 -15,-15 0,-8.3 6.7,-15 15,-15 8.3,0 15,6.7 15,15 z"
|
||||
};
|
||||
icn["AR.I.CIVILIAN UNMANNED AERIAL VEHICLE"] = {
|
||||
type: "path",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
d: "m 60,84 40,20 40,-20 0,8 -40,25 -40,-25 z"
|
||||
};
|
||||
icn["AR.I.WEAPON"] = text("WPN");
|
||||
icn["AR.I.UNDERWATER DECOY DSymbol"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"M 85 81 L 65 98 L 85 119 L 85 81 z M 110 81 L 90 98 L 110 119 L 110 81 z M 135 81 L 115 98 L 135 119 L 135 81 z"
|
||||
};
|
||||
icn["AR.I.BOMB"] = text("BOMB");
|
||||
icn["AR.I.MANUAL TRACK"] = text("MAN");
|
||||
icn["AIR.M1.ATTACK"] = textm1("A");
|
||||
icn["AIR.M1.BOMBER"] = textm1("B");
|
||||
icn["AIR.M1.CARGO"] = textm1("C");
|
||||
icn["AIR.M1.FIGHTER"] = textm1("F");
|
||||
icn["AIR.M1.INTERCEPTOR"] = textm1("I");
|
||||
icn["AIR.M1.TANKER"] = textm1("K");
|
||||
icn["AIR.M1.UTILITY"] = textm1("U");
|
||||
icn["AIR.M1.VSTOL"] = textm1(STD2525 && !numberSIDC ? "L" : "V");
|
||||
icn["AIR.M1.PASSENGER"] = textm1("PX");
|
||||
icn["AIR.M1.ULTRA LIGHT"] = textm1("UL");
|
||||
icn["AIR.M1.AIRBORNE COMMAND POST"] =
|
||||
STD2525 && !numberSIDC ? textm1("D") : textm1("ACP");
|
||||
icn["AIR.M1.ANTISURFACE WARFARE"] =
|
||||
STD2525 && !numberSIDC ? textm1("N") : textm1("ASUW");
|
||||
icn["AIR.M1.AIRBORNE EARLY WARNING"] =
|
||||
STD2525 && !numberSIDC ? textm1("W") : textm1("AEW");
|
||||
icn["AIR.M1.GOVERNMENT"] = textm1("GOV");
|
||||
icn["AIR.M1.MEDEVAC"] = {
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d: "M95.5,80 l9,0 0,-9 9,0 0,-9 -9,0 0,-9 -9,0 0,9 -9,0 0,9 9,0 Z"
|
||||
};
|
||||
icn["AIR.M1.ESCORT"] = textm1("E");
|
||||
icn["AIR.M1.INTENSIVE CARE"] = textm1("IC");
|
||||
icn["AIR.M1.JAMMER / ELECTRONIC COUNTER-MEASURES"] = textm1("J");
|
||||
icn["AIR.M1.PATROL"] = textm1("P");
|
||||
icn["AIR.M1.RECONNAISSANCE"] = textm1("R");
|
||||
icn["AIR.M1.TRAINER"] = textm1("T");
|
||||
icn["AIR.M1.PHOTOGRAPHIC"] =
|
||||
STD2525 && !numberSIDC ? textm1("X") : textm1("PH");
|
||||
icn["AIR.M1.PERSONNEL RECOVERY"] = textm1("PR");
|
||||
icn["AIR.M1.ANTISUBMARINE WARFARE"] =
|
||||
STD2525 && !numberSIDC ? textm1("S") : textm1("ASW");
|
||||
icn["AIR.M1.COMMUNICATIONS"] =
|
||||
STD2525 && !numberSIDC ? textm1("Y") : textm1("COM");
|
||||
icn["AIR.M1.ELECTRONIC SURVEILLANCE MEASURES"] = STD2525
|
||||
? textm1("Z")
|
||||
: textm1("ESM");
|
||||
icn["AIR.M1.MINE COUNTERMEASURES"] = textm1("MCM");
|
||||
icn["AIR.M1.SEARCH AND RESCUE"] = textm1("SAR");
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"] = textm1("SOF");
|
||||
icn["AIR.M1.SURFACE WARFARE"] = textm1("SUW");
|
||||
icn["AIR.M1.VIP"] = textm1("VIP");
|
||||
icn["AIR.M1.COMBAT SEARCH AND RESCUE"] =
|
||||
STD2525 && !numberSIDC ? textm1("H") : textm1("CSAR");
|
||||
icn["AIR.M1.SUPRESSION OF ENEMY AIR DEFENCE"] = textm1("SEAD");
|
||||
icn["AIR.M1.UNMANNED AERIAL VEHICLE"] = {
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d: "m 80,65 20,13 20,-13 0,-5 -20,10 -20,-10 z"
|
||||
};
|
||||
icn["AIR.M1.BOOM-ONLY"] = textm1("B");
|
||||
icn["AIR.M1.DROUGE-ONLY"] = textm1("D");
|
||||
//2525D
|
||||
icn["AIR.M1.ELECTRONIC SUPPORT (ES)"] = STD2525
|
||||
? textm1("ES")
|
||||
: textm1("ESM");
|
||||
icn["AIR.M1.HIJACKER"] = textm1("HJ");
|
||||
icn["AIR.M1.CYBERSPACE"] = textm1("CYB");
|
||||
icn["AIR.M1.FIGHTER/BOMBER"] = textm1("F/B");
|
||||
icn["AIR.M1.ELECTRONIC ATTACK (EA)"] = textm1("EA");
|
||||
icn["AIR.M1.MULTIMISSION"] = textm1("MM");
|
||||
icn["AIR.M1.HIJACKING"] = textm1("H");
|
||||
icn["AIR.M1.ASW HELO-LAMPS"] = textm1("LP");
|
||||
icn["AIR.M1.ASW HELO - SH-60R"] = textm1("60R");
|
||||
icn["AIR.M2.HEAVY"] = textm2("H");
|
||||
icn["AIR.M2.MEDIUM"] = textm2("M");
|
||||
icn["AIR.M2.LIGHT"] = textm2("L");
|
||||
icn["AIR.M2.BOOM-ONLY"] = textm2("B");
|
||||
icn["AIR.M2.DROUGE-ONLY"] = textm2("D");
|
||||
icn["AIR.M2.BOOM AND DROUGE"] = textm2("B/D");
|
||||
icn["AIR.M2.CLOSE RANGE"] = textm2("CR");
|
||||
icn["AIR.M2.SHORT RANGE"] = textm2("SR");
|
||||
icn["AIR.M2.MEDIUM RANGE"] = textm2("MR");
|
||||
icn["AIR.M2.LONG RANGE"] = textm2("LR");
|
||||
icn["AIR.M2.PHOTOGRAPHIC"] = textm2("P");
|
||||
icn["AIR.M2.CYBERSPACE"] = textm2("CYB");
|
||||
//2525D
|
||||
icn["AIR.M2.DOWNLINKED"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 140,
|
||||
fontsize: 25,
|
||||
text: "DL"
|
||||
};
|
||||
icn["AIR.MISSILE.ICON"] = {
|
||||
type: "path",
|
||||
d: "M90,135 l0,-10 5,-5 0,-55 5,-5 5,5 0,55 5,5 0,10 -10,-10 z"
|
||||
};
|
||||
if (STD2525 || numberSIDC)
|
||||
icn["AIR.MISSILE.ICON"].fill = frame
|
||||
? colors.fillColor.Unknown
|
||||
: colors.iconFillColor.Unknown;
|
||||
icn["AIR.MISSILE.IC.ANTIBALLISTIC MISSILE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "ABM"
|
||||
};
|
||||
icn["AIR.MISSILE.IC.BOMB"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "BOMB"
|
||||
};
|
||||
icn["AIR.MISSILE.M1.AIR"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "A"
|
||||
};
|
||||
icn["AIR.MISSILE.M1.SURFACE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "S"
|
||||
};
|
||||
icn["AIR.MISSILE.M1.SUBSURFACE"] = [
|
||||
{ type: "text", stroke: false, x: 68, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 68, y: 125, fontsize: 30, text: "U" }
|
||||
];
|
||||
icn["AIR.MISSILE.M1.SPACE"] = [
|
||||
{ type: "text", stroke: false, x: 68, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 68, y: 125, fontsize: 30, text: "P" }
|
||||
];
|
||||
icn["AIR.MISSILE.M1.ANTI-BALLISTIC"] = [
|
||||
{ type: "text", stroke: false, x: 68, y: 95, fontsize: 30, text: "A" },
|
||||
{ type: "text", stroke: false, x: 68, y: 125, fontsize: 30, text: "B" }
|
||||
];
|
||||
icn["AIR.MISSILE.M1.BALLISTIC"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "B"
|
||||
};
|
||||
icn["AIR.MISSILE.M1.CRUISE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "C"
|
||||
};
|
||||
icn["AIR.MISSILE.M1.LAND"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "L"
|
||||
};
|
||||
//2525D
|
||||
icn["AIR.MISSILE.M1.INTERCEPTOR"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "I"
|
||||
};
|
||||
icn["AIR.MISSILE.M2.AIR"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "A"
|
||||
};
|
||||
icn["AIR.MISSILE.M2.SURFACE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "S"
|
||||
};
|
||||
icn["AIR.MISSILE.M2.SUBSURFACE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "U" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.SPACE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "P" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.LAUNCHED"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "L"
|
||||
};
|
||||
icn["AIR.MISSILE.M2.MISSILE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "M"
|
||||
};
|
||||
//2525D
|
||||
icn["AIR.MISSILE.M2.PATRIOT"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "P"
|
||||
};
|
||||
icn["AIR.MISSILE.M2.STANDARD MISSILE - 2 (SM-2)"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "2" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.STANDARD MISSILE - 6 (SM-6)"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "6" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.EVOLVED SEA SPARROW MISSILE (ESSM)"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "S" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.ROLLING AIRFRAME MISSILE (RAM)"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "R"
|
||||
};
|
||||
icn["AIR.MISSILE.M2.SHORT RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.MEDIUM RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "M" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.INTERMEDIATE RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "I" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.LONG RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "L" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["AIR.MISSILE.M2.INTERCONTINENTAL"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "I" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "C" }
|
||||
];
|
||||
|
||||
for (var key in icn) {
|
||||
if (!icn.hasOwnProperty(key)) continue;
|
||||
if (iconParts.hasOwnProperty(key)) console.warn("Override of: " + key);
|
||||
defaultProperties.call(this, icn[key], iconColor);
|
||||
iconParts[key] = icn[key];
|
||||
}
|
||||
}
|
||||
4593
node_modules/milsymbol/src/iconparts/ground.js
generated
vendored
Normal file
90
node_modules/milsymbol/src/iconparts/iconparts-functions.js
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
export function defaultProperties(instructions, iconColor) {
|
||||
if (typeof instructions === "object") {
|
||||
if (Array.isArray(instructions)) {
|
||||
for (var i = 0; i < instructions.length; i++) {
|
||||
defaultProperties.call(this, instructions[i], iconColor);
|
||||
}
|
||||
return;
|
||||
}
|
||||
instructions.icon = true;
|
||||
if (instructions.type == "text") {
|
||||
if (!instructions.hasOwnProperty("fontfamily"))
|
||||
instructions.fontfamily = "Arial";
|
||||
if (!instructions.hasOwnProperty("fontweight"))
|
||||
instructions.fontweight = "bold";
|
||||
if (!instructions.hasOwnProperty("textanchor"))
|
||||
instructions.textanchor = "middle";
|
||||
if (!instructions.hasOwnProperty("stroke")) instructions.stroke = false;
|
||||
}
|
||||
if (!instructions.hasOwnProperty("fill")) instructions.fill = iconColor;
|
||||
if (!instructions.hasOwnProperty("stroke")) instructions.stroke = iconColor;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
export function text(str) {
|
||||
var size = 42;
|
||||
var y = 115;
|
||||
if (str.length == 1) {
|
||||
size = 45;
|
||||
y = 115;
|
||||
}
|
||||
if (str.length == 3) {
|
||||
size = 35;
|
||||
y = 110;
|
||||
}
|
||||
if (str.length >= 4) {
|
||||
size = 32;
|
||||
y = 110;
|
||||
}
|
||||
var t = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
textanchor: "middle",
|
||||
x: 100,
|
||||
y: y,
|
||||
fontsize: size,
|
||||
text: str
|
||||
};
|
||||
return t;
|
||||
}
|
||||
export function textm1(str) {
|
||||
var size = 30;
|
||||
if (str.length == 3) {
|
||||
size = 25;
|
||||
}
|
||||
if (str.length >= 4) {
|
||||
size = 22;
|
||||
}
|
||||
return {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
textanchor: "middle",
|
||||
x: 100,
|
||||
y: 77,
|
||||
fontsize: size,
|
||||
text: str
|
||||
};
|
||||
}
|
||||
export function textm2(str) {
|
||||
var size = 30;
|
||||
var y = 145;
|
||||
|
||||
if (str.length == 3) {
|
||||
size = 25;
|
||||
y = 140;
|
||||
}
|
||||
if (str.length >= 4) {
|
||||
size = 20;
|
||||
y = 135;
|
||||
}
|
||||
return {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
textanchor: "middle",
|
||||
x: 100,
|
||||
y: y,
|
||||
fontsize: size,
|
||||
text: str
|
||||
};
|
||||
}
|
||||
554
node_modules/milsymbol/src/iconparts/sea.js
generated
vendored
Normal file
@@ -0,0 +1,554 @@
|
||||
import {
|
||||
defaultProperties,
|
||||
text,
|
||||
textm1,
|
||||
textm2
|
||||
} from "./iconparts-functions.js";
|
||||
|
||||
export default function(
|
||||
iconParts,
|
||||
metadata,
|
||||
colors,
|
||||
STD2525,
|
||||
monoColor,
|
||||
alternateMedal
|
||||
) {
|
||||
/*
|
||||
iconParts
|
||||
The existing object of icon parts
|
||||
|
||||
metadata
|
||||
properties object
|
||||
|
||||
colors
|
||||
color object
|
||||
|
||||
STD2525
|
||||
Is it 2525 then true, otherwise false
|
||||
|
||||
alternateMedal
|
||||
true/false for sea mine stuff
|
||||
*/
|
||||
|
||||
var frame = metadata.frame;
|
||||
var affiliation = metadata.affiliation || "Friend";
|
||||
//var baseGeometry = metadata.baseGeometry;
|
||||
var numberSIDC = metadata.numberSIDC;
|
||||
//var fillColor = colors.fillColor[affiliation];
|
||||
var iconColor = colors.iconColor[affiliation];
|
||||
var iconFillColor = colors.iconFillColor[affiliation];
|
||||
// var none = colors.none[affiliation];
|
||||
var black = colors.black[affiliation];
|
||||
var white = colors.white[affiliation];
|
||||
|
||||
//var numberSIDC = metadata.numberSIDC;
|
||||
var icn = {};
|
||||
|
||||
icn["SE.IC.MILITARY"] = text("MIL");
|
||||
icn["SE.IC.MANUAL TRACK"] = text("MAN");
|
||||
icn["SE.IC.COMBATANT"] = [
|
||||
{
|
||||
type: "path",
|
||||
d:
|
||||
"m 86.9,110 c -3.6,2 -7.2,3.9 -10.8,5.9 2.1,2.9 6.7,3.9 10,2.1 2.6,-0.9 4.7,-3.8 3.1,-6.1 -0.8,-0.6 -1.5,-1.3 -2.3,-1.9 z m 26.3,0.1 c 3.6,2 7.2,3.9 10.8,5.9 -2.1,2.9 -6.7,3.9 -10,2.1 -2.6,-0.9 -4.7,-3.8 -3.1,-6.1 0.8,-0.6 1.5,-1.3 2.3,-1.9 z",
|
||||
fill: false
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
d:
|
||||
"m 112.9,110 c -5.6,-4 -11.3,-7.9 -16.1,-12.5 -4.2,-4.5 -7,-9.8 -9.2,-15.1 -0.8,4.4 -0.9,9.3 2.4,13.2 3.6,4.5 8.6,8.1 13.5,11.8 2.3,1.7 4.7,3.3 7.1,4.8 0.8,-0.7 1.5,-1.5 2.3,-2.2 m -25.7,0 c 5.6,-4 11.3,-7.9 16.1,-12.5 4.2,-4.5 7,-9.8 9.2,-15.1 0.8,4.4 0.9,9.3 -2.4,13.2 -3.6,4.5 -8.6,8.1 -13.5,11.8 -2.3,1.7 -4.7,3.3 -7.1,4.8 -0.8,-0.7 -1.5,-1.5 -2.3,-2.2",
|
||||
fill: white,
|
||||
strokewidth: 2
|
||||
}
|
||||
];
|
||||
icn["SE.IC.SURFACE COMBATANT, LINE"] = {
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d:
|
||||
"m 100,120 -25,-17 15,2 0,-10 5,0 0,-5 -15,0 0,-5 15,0 0,-5 10,0 0,5 15,0 0,5 -15,0 0,5 5,0 0,10 15,-2 z"
|
||||
};
|
||||
icn["SE.IC.CARRIER"] = {
|
||||
type: "path",
|
||||
d: "m 80,100 20,20 20,-20 -20,0 0,-20 -20,0 z"
|
||||
};
|
||||
icn["SE.IC.BATTLESHIP"] = text("BB");
|
||||
icn["SE.IC.CIVILIAN"] = text("CIV");
|
||||
icn["SE.IC.CIVILIAN"].fill =
|
||||
STD2525 || numberSIDC ? iconFillColor : !frame ? iconFillColor : false;
|
||||
icn["SE.IC.CIVILIAN"].stroke = black;
|
||||
icn["SE.IC.CIVILIAN"].strokewidth = 3;
|
||||
icn["SE.IC.CRUISER"] = text("CC");
|
||||
icn["SE.IC.CRUISER, GUIDED MISSILE"] = text("CG");
|
||||
icn["SE.IC.DESTROYER"] = text("DD");
|
||||
icn["SE.IC.FRIGATE"] = text("FF");
|
||||
icn["SE.IC.CORVETTE"] = text("FS");
|
||||
icn["SE.IC.LITTORAL COMBATANT SHIP"] = text("LL");
|
||||
icn["SE.IC.AMPHIBIOUS WARFARE SHIP"] = {
|
||||
type: "path",
|
||||
d: "m 100,120 20,0 m -20,0 -20,-20 10,0 0,-20 20,0 0,20 10,0 z"
|
||||
};
|
||||
icn["SE.IC.AMPHIBIOUS FORCE FLAGSHIP"] = text("LCC");
|
||||
icn["SE.IC.AMPHIBIOUS ASSAULT"] = text("LA");
|
||||
icn["SE.IC.AMPHIBIOUS ASSAULT SHIP, GENERAL"] = text("LHA");
|
||||
icn["SE.IC.AMPHIBIOUS ASSAULT SHIP, MULTI-PURPOSE"] = text("LHD");
|
||||
icn["SE.IC.AMPHIBIOUS TRANSPORT, DOCK"] = text("LPD");
|
||||
icn["SE.IC.AMPHIBIOUS ASSAULT SHIP, HELICOPTER"] = text("LPH");
|
||||
icn["SE.IC.LANDING SHIP"] = text("LS");
|
||||
icn["SE.IC.LANDING CRAFT"] = text("LC");
|
||||
icn["SE.IC.MINE WARFARE VESSEL"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 98.3,81 0,4.1 c -2.4,0.3 -4.6,1.4 -6.4,2.9 l -3.5,-3.5 -2.4,2.4 3.6,3.6 c -0.9,1.3 -1.5,4.9 -1.8,6.5 l -10.8,0 0,3 3,0 20,20 20,-20 3,0 0,-3 -10,0 c -1,-1.7 -2,-5.3 -3,-6.7 l 4,-3.7 -2,-2.4 -4,3.6 c -2,-1.4 -4,-2.4 -6,-2.7 l 0,-4.1 z"
|
||||
};
|
||||
icn["SE.IC.MINELAYER"] = text("ML");
|
||||
icn["SE.IC.MINESWEEPER"] = text("MS");
|
||||
icn["SE.IC.MINESWEEPER, DRONE"] = text("MSD");
|
||||
icn["SE.IC.MINEHUNTER"] = text("MH");
|
||||
icn["SE.IC.MINE COUNTER MEASURE SUPPORT SHIP"] = text(STD2525 ? "MA" : "MCS");
|
||||
icn["SE.IC.MINE COUNTERMEASURES"] = text("MCM");
|
||||
icn["SE.IC.SEA SURFACE DECOY"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"M 105,110 90,95 105,80 z M 85,110 70,95 85,80 z m 40,-30 -15,15 15,15 z m -55,40 0,-5 55,0 0,5 z"
|
||||
};
|
||||
icn["SE.IC.PATROL"] = {
|
||||
type: "path",
|
||||
d: "m 80,100 20,20 20,-20 -10,0 0,-20 -20,0 0,20 z"
|
||||
};
|
||||
icn["SE.IC.PATROL CRAFT"] = text("PC");
|
||||
icn["SE.IC.PATROL ANTI SUBMARINE WARFARE"] = {
|
||||
type: "path",
|
||||
d: "m 100,120 -25,-25 5,-5 10,10 5,0 0,-20 10,0 0,20 5,0 10,-10 5,5 z"
|
||||
};
|
||||
icn["SE.IC.PATROL ANTISHIP MISSILE"] = text("PM");
|
||||
icn["SE.IC.PATROL TORPEDO"] = text("PT");
|
||||
icn["SE.IC.PATROL GUN"] = text("PG");
|
||||
icn["SE.IC.PATROL SHIP"] = [];
|
||||
icn["SE.IC.MILITARY SPEEDBOAT"] = {
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d: "m 120,120 -40,0 -15,-25 15,0 5,-15 10,0 -5,15 45,0 z"
|
||||
};
|
||||
icn["SE.IC.MILITARY SPEEDBOAT, RIGID-HULL INFLATABLE BOAT"] = [
|
||||
{
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d:
|
||||
"M 85 80 L 80 95 L 65 95 L 80 120 L 120 120 L 135 95 L 90 95 L 95 80 L 85 80 z M 87 100.7 L 93.1 100.7 C 94.6 100.7 95.7 100.8 96.4 101.1 C 97.1 101.3 97.7 101.8 98.1 102.4 C 98.5 103.1 98.7 103.8 98.7 104.7 C 98.7 105.8 98.4 106.7 97.8 107.4 C 97.1 108.1 96.2 108.5 94.9 108.7 C 95.6 109.1 96.1 109.4 96.5 109.9 C 96.9 110.3 97.4 111.1 98.1 112.2 L 99.9 115 L 96.4 115 L 94.3 111.9 C 93.6 110.8 93.1 110.1 92.8 109.8 C 92.5 109.5 92.2 109.3 91.9 109.2 C 91.6 109.1 91.2 109 90.5 109 L 89.9 109 L 89.9 115 L 87 115 L 87 100.7 z M 101.5 100.7 L 107.2 100.7 C 108.3 100.7 109.2 100.7 109.7 100.8 C 110.3 100.9 110.8 101.1 111.2 101.4 C 111.7 101.7 112 102.1 112.3 102.6 C 112.6 103.1 112.7 103.7 112.8 104.3 C 112.7 105 112.6 105.6 112.2 106.1 C 111.9 106.7 111.4 107.1 110.8 107.4 C 111.6 107.7 112.3 108.1 112.8 108.7 C 113.2 109.3 113.5 110 113.5 110.8 C 113.5 111.5 113.3 112.1 113 112.8 C 112.7 113.4 112.3 113.8 111.8 114.2 C 111.2 114.6 110.6 114.8 109.8 114.9 C 109.3 115 108.2 115 106.3 115 L 101.5 115 L 101.5 100.7 z M 104.3 103.1 L 104.3 106.4 L 106.3 106.4 C 107.4 106.4 108.1 106.3 108.3 106.3 C 108.8 106.3 109.2 106.1 109.5 105.8 C 109.8 105.5 109.9 105.1 109.9 104.7 C 109.9 104.2 109.8 103.9 109.6 103.6 C 109.3 103.3 109 103.2 108.5 103.1 C 108.2 103.1 107.4 103.1 106 103.1 L 104.3 103.1 z M 89.9 103.1 L 89.9 106.8 L 92 106.8 C 93.4 106.8 94.3 106.7 94.6 106.6 C 95 106.4 95.2 106.3 95.4 106 C 95.6 105.7 95.7 105.3 95.8 104.9 C 95.7 104.4 95.6 104 95.3 103.7 C 95.1 103.4 94.7 103.2 94.3 103.2 C 94 103.1 93.3 103.1 92.2 103.1 L 89.9 103.1 z M 104.3 108.8 L 104.3 112.6 L 107 112.6 C 108.1 112.6 108.7 112.6 109 112.5 C 109.4 112.4 109.8 112.2 110.1 111.9 C 110.3 111.6 110.5 111.2 110.5 110.7 C 110.5 110.3 110.4 109.9 110.2 109.6 C 109.9 109.3 109.6 109.1 109.3 109 C 108.9 108.8 108 108.8 106.7 108.8 L 104.3 108.8 z"
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 115,
|
||||
fontsize: 20,
|
||||
text: "RB"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.MILITARY JETSKI"] = {
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d: "m 135,105 0,15 -60,0 -10,-15 20,-25 10,0 0,10 -5,0 -5,15 z"
|
||||
};
|
||||
icn["SE.IC.UNMANNED SURFACE WATER VEHICLE"] = {
|
||||
type: "path",
|
||||
d: "m 60,84 40,20 40,-20 0,8 -40,25 -40,-25 z",
|
||||
stroke: false
|
||||
};
|
||||
icn["SE.IC.NAVY TASK ORGANIZATION UNIT"] = [
|
||||
{ type: "path", d: "m 110,80 15,15 0,25 M 90,80 75,95 l 0,25", fill: false }
|
||||
];
|
||||
if (STD2525)
|
||||
icn["SE.IC.NAVY TASK ORGANIZATION UNIT"].push({
|
||||
type: "path",
|
||||
d: "m 100,80 -15,15 0,25 30,0 0,-25 -15,-15"
|
||||
});
|
||||
icn["SE.IC.NAVY TASK FORCE"] = [
|
||||
icn["SE.IC.NAVY TASK ORGANIZATION UNIT"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: STD2525 ? 150 : 120,
|
||||
fontsize: 30,
|
||||
text: "TF"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.NAVY TASK GROUP"] = [
|
||||
icn["SE.IC.NAVY TASK ORGANIZATION UNIT"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: STD2525 ? 150 : 120,
|
||||
fontsize: 30,
|
||||
text: "TG"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.NAVY TASK UNIT"] = [
|
||||
icn["SE.IC.NAVY TASK ORGANIZATION UNIT"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: STD2525 ? 150 : 120,
|
||||
fontsize: 30,
|
||||
text: "TU"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.NAVY TASK ELEMENT"] = [
|
||||
icn["SE.IC.NAVY TASK ORGANIZATION UNIT"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: STD2525 ? 150 : 120,
|
||||
fontsize: 30,
|
||||
text: "TE"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.CONVOY"] = {
|
||||
type: "path",
|
||||
d: "m 80,115 -20,0 0,-35 80,0 0,35 -20,0 0,-20 -40,0 z"
|
||||
};
|
||||
icn["SE.IC.NONCOMBATANT"] = {
|
||||
type: "path",
|
||||
d: "m 80,100 0,-20 40,0 0,20 15,0 0,20 -70,0 0,-20 z"
|
||||
};
|
||||
icn["SE.IC.AUXILIARY SHIP"] = text(STD2525 ? "AR" : "AA");
|
||||
icn["SE.IC.AMMUNITION SHIP"] = text("AE");
|
||||
icn["SE.IC.STORES SHIP"] = text("AF");
|
||||
icn["SE.IC.AUXILIARY FLAG OR COMMAND SHIP"] = text("AGF");
|
||||
icn["SE.IC.INTELLIGENCE COLLECTOR"] = text(STD2525 ? "JI" : "AI");
|
||||
icn["SE.IC.OCEAN RESEARCH SHIP"] = text("AGO");
|
||||
icn["SE.IC.SURVEY SHIP"] = text("AGS");
|
||||
icn["SE.IC.HOSPITAL SHIP"] = text("AH");
|
||||
icn["SE.IC.CARGO SHIP"] = text("AK");
|
||||
icn["SE.IC.COMBAT SUPPORT SHIP, FAST"] = text("AOE");
|
||||
icn["SE.IC.OILER, REPLENISHMENT"] = text("AO");
|
||||
icn["SE.IC.REPAIR SHIP"] = text("AR");
|
||||
icn["SE.IC.SUBMARINE TENDER"] = text("AS");
|
||||
icn["SE.IC.TUG, OCEAN GOING"] = text(STD2525 ? "AS" : "AT");
|
||||
icn["SE.IC.SERVICE CRAFT, YARD, GENERAL"] = STD2525 ? text("YY") : text("YT");
|
||||
icn["SE.IC.BARGE, NOT SELF-PROPELLED"] = text("YB");
|
||||
icn["SE.IC.BARGE, SELF-PROPELLED"] = text("YS");
|
||||
icn["SE.IC.TUG, HARBOUR"] = text("YT");
|
||||
icn["SE.IC.LAUNCH"] = text("YFT");
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d: "m 75,100 0,-35 50,0 0,35 20,0 -15,35 -60,0 -15,-35 z"
|
||||
};
|
||||
icn["SE.IC.CARGO, GENERAL"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 115,
|
||||
fontsize: 30,
|
||||
text: STD2525 ? "CA" : "A"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.CONTAINER SHIP"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "C" }
|
||||
];
|
||||
icn["SE.IC.DREDGE"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "D" }
|
||||
];
|
||||
icn["SE.IC.RADAR"] = {
|
||||
type: "path",
|
||||
d: "M72,95 l30,-25 0,25 30,-25 M70,70 c0,35 15,50 50,50",
|
||||
fill: false
|
||||
};
|
||||
icn["SE.IC.ROLL ON-ROLL OFF"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 115,
|
||||
fontsize: STD2525 ? "30" : "30",
|
||||
text: STD2525 ? "RO" : "E"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.FERRY"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 115,
|
||||
fontsize: 30,
|
||||
text: STD2525 ? "FE" : "F"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.HEAVY LIFT"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "H" }
|
||||
];
|
||||
icn["SE.IC.HOVERCRAFT"] = {
|
||||
type: "path",
|
||||
d: STD2525
|
||||
? "m 65,100 0,-30 5,10 60,0 5,-10 0,30 10,0 -15,35 -60,0 -15,-35 z"
|
||||
: "m 90,80 0,15.6 C 78.4,96.9 70,100.6 70,105 c 0,5.5 13.4,10 30,10 16.6,0 30,-4.5 30,-10 0,-4.4 -8.4,-8.1 -20,-9.4 L 110,80 90,80 z m -15,40 50,0"
|
||||
};
|
||||
icn["SE.IC.HOVERCRAFT 2525D"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "J" }
|
||||
];
|
||||
icn["SE.IC.HOVERCRAFT CIVILIAN"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d: STD2525
|
||||
? "m 65,100 0,-30 5,10 60,0 5,-10 0,30 10,0 -15,35 -60,0 -15,-35 z"
|
||||
: "m 90,80 0,15.6 C 78.4,96.9 70,100.6 70,105 c 0,5.5 13.4,10 30,10 16.6,0 30,-4.5 30,-10 0,-4.4 -8.4,-8.1 -20,-9.4 L 110,80 90,80 z m -15,40 50,0"
|
||||
};
|
||||
icn["SE.IC.HOVERCRAFT NONCOMBATANT"] = [
|
||||
{
|
||||
type: "path",
|
||||
d: "m 65,100 0,-30 5,10 60,0 5,-10 0,30 10,0 -15,35 -60,0 -15,-35 z",
|
||||
strokewidth: false
|
||||
},
|
||||
STD2525
|
||||
? {
|
||||
type: "text",
|
||||
fill: white,
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 120,
|
||||
fontsize: 30,
|
||||
text: "NC"
|
||||
}
|
||||
: []
|
||||
];
|
||||
icn["SE.IC.MERCHANT SHIP, LASH CARRIER (WITH BARGES)"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "L" }
|
||||
];
|
||||
icn["SE.IC.OILER/TANKER"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 115,
|
||||
fontsize: 30,
|
||||
text: STD2525 ? "OT" : "O"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.PASSENGER SHIP"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 115,
|
||||
fontsize: 30,
|
||||
text: STD2525 ? "PA" : "P"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.TUG, OCEAN GOING CIVILIAN"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 115,
|
||||
fontsize: 30,
|
||||
text: STD2525 ? "TU" : "T"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.TOW"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "TW" }
|
||||
];
|
||||
icn["SE.IC.TRANSPORT SHIP, HAZARDOUS MATERIAL"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "HZ" }
|
||||
];
|
||||
icn["SE.IC.JUNK/DHOW"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "QJ" }
|
||||
];
|
||||
icn["SE.IC.BARGE, NOT SELF-PROPELLED"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 115, fontsize: 30, text: "YB" }
|
||||
];
|
||||
icn["SE.IC.HOSPITAL SHIP2"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d:
|
||||
"m 95,95 0,-15 10,0 0,15 15,0 0,10 -15,0 0,15 -10,0 0,-15 -15,0 0,-10 z"
|
||||
}
|
||||
];
|
||||
icn["SE.IC.FISHING VESSEL"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 75,100 0,-15 20,0 0,15 50,0 -15,35 -60,0 -15,-35 z M 105,57.4 105,100 m 30,-35 -30,35"
|
||||
};
|
||||
icn["SE.IC.DRIFTER"] = [
|
||||
icn["SE.IC.FISHING VESSEL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 125, fontsize: 30, text: "DF" }
|
||||
];
|
||||
icn["SE.IC.TRAWLER"] = [
|
||||
icn["SE.IC.FISHING VESSEL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 125, fontsize: 30, text: "TR" }
|
||||
];
|
||||
icn["SE.IC.FISHING VESSEL DREDGE"] = [
|
||||
icn["SE.IC.FISHING VESSEL"],
|
||||
{ type: "text", stroke: false, x: 100, y: 125, fontsize: 30, text: "DR" }
|
||||
];
|
||||
icn["SE.IC.LAW ENFORCEMENT VESSEL"] = [
|
||||
icn["SE.IC.MERCHANT SHIP, GENERAL"],
|
||||
{ type: "path", d: "m 135,100 -15,35 -10,0 15,-35 z" }
|
||||
];
|
||||
icn["SE.IC.LEISURE CRAFT, SAILING BOAT"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d: "m 105,55 0,40 35,0 z m -5,-5 0,50 m 45,0 -15,35 -60,0 -15,-35 z"
|
||||
};
|
||||
icn["SE.IC.LEISURE CRAFT, MOTORIZED"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d: "m 70,97.4 15,-30 10,0 -15,30 65,0 -15,35 -60,0 -15,-35 z"
|
||||
};
|
||||
icn["SE.IC.LEISURE CRAFT, MOTORIZED, RIGID-HULL INFLATABLE BOAT"] = [
|
||||
icn["SE.IC.LEISURE CRAFT, MOTORIZED"],
|
||||
{ type: "text", stroke: false, x: 100, y: 125, fontsize: 30, text: "RB" }
|
||||
];
|
||||
icn["SE.IC.LEISURE CRAFT, MOTORIZED, SPEEDBOAT"] = [
|
||||
icn["SE.IC.LEISURE CRAFT, MOTORIZED"],
|
||||
{ type: "text", stroke: false, x: 100, y: 125, fontsize: 30, text: "SP" }
|
||||
];
|
||||
icn["SE.IC.LEISURE CRAFT, JETSKI"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d: "m 85,60 -30,45 10,15 75,0 0,-20 -60,0 10,-30 5,0 0,-10 z"
|
||||
};
|
||||
icn["SE.IC.UNMANNED SURFACE WATER VEHICLE (USV)"] = {
|
||||
type: "path",
|
||||
fill: STD2525 || numberSIDC ? iconFillColor : false,
|
||||
stroke: black,
|
||||
d: "m 60,84 40,20 40,-20 0,8 -40,25 -40,-25 z"
|
||||
};
|
||||
icn["SE.IC.OWN SHIP"] = {
|
||||
type: "path",
|
||||
fill: false,
|
||||
stroke: monoColor ? iconColor : iconFillColor,
|
||||
d:
|
||||
"m 50,100 100,0 m -50,-50 0,100 m 50,-50 c 0,27.6 -22.4,50 -50,50 -27.6,0 -50,-22.4 -50,-50 0,-27.6 22.4,-50 50,-50 27.6,0 50,22.4 50,50 z"
|
||||
};
|
||||
icn["SE.IC.DITCHED AIRCRAFT"] = {
|
||||
type: "path",
|
||||
fill: monoColor ? iconColor : iconFillColor,
|
||||
stroke: monoColor ? iconColor : iconFillColor,
|
||||
d:
|
||||
"m 145,120 -15,-15 m -15,15 15,-15 m -75,15 15,-15 m 15,15 -15,-15 m 10,10 25,-30 -10,-10 10,-10 20,20 -10,35 -15,-15 -15,15 z"
|
||||
};
|
||||
icn["SE.IC.PERSON IN WATER"] = {
|
||||
type: "path",
|
||||
fill: monoColor ? iconColor : iconFillColor,
|
||||
stroke: monoColor ? iconColor : iconFillColor,
|
||||
d:
|
||||
"m 105,110 10,-10 0,-15 5,0 0,20 -10,10 z m -10,0 -10,-10 0,-15 -5,0 0,20 10,10 z m 5,-5 0,-10 -5,0 -5,-5 0,-10 5,-5 10,0 5,5 0,10 -5,5 -5,0 m -15,25 15,-15 m 45,15 -15,-15 m -15,15 15,-15 m -75,15 15,-15 m 15,15 -15,-15 m 45,15 -15,-15"
|
||||
};
|
||||
icn["SE.IC.DISTRESSED VESSEL"] = {
|
||||
type: "path",
|
||||
fill: monoColor ? iconColor : iconFillColor,
|
||||
stroke: monoColor ? iconColor : iconFillColor,
|
||||
d:
|
||||
"m 120,65 -20,20 20,-20 m -5,55 -35,-35 0,-20 45,45 z m -30,0 -15,-15 m -15,15 15,-15 m 45,15 15,-15 m 15,15 -15,-15 m -45,15 15,-15"
|
||||
};
|
||||
icn["SE.IC.SEA MINELIKE"] = {
|
||||
type: "path",
|
||||
fill: monoColor ? iconColor : iconFillColor,
|
||||
stroke: monoColor ? iconColor : iconFillColor,
|
||||
d:
|
||||
"m 117.7,75 c 3.5,-3.5 7.1,-7.1 7.1,-7.1 l 7.1,7.1 -7.1,7.1 m -49.5,0 c -3.5,-3.5 -7.1,-7.1 -7.1,-7.1 l 7.1,-7.1 7.1,7.1 M 95,70 c 0,-5 0,-10 0,-10 l 10,0 0,10 m 25,30 c 0,16.6 -13.4,30 -30,30 -16.6,0 -30,-13.4 -30,-30 0,-16.6 13.4,-30 30,-30 16.6,0 30,13.4 30,30 z"
|
||||
};
|
||||
icn["SE.IC.NAVIGATIONAL"] = {
|
||||
type: "path",
|
||||
fill: false,
|
||||
stroke: monoColor ? iconColor : "red",
|
||||
d: "m 75,90 -10,10 70,0 -10,10"
|
||||
};
|
||||
icn["SE.IC.ICEBERG"] = {
|
||||
type: "path",
|
||||
fill: monoColor ? iconColor : iconFillColor,
|
||||
stroke: monoColor ? iconColor : iconFillColor,
|
||||
d: "m 75,100 25,-30 25,30 -5,15 -5,-5 -15,20 -15,-20 -5,5 z m -15,0 80,0"
|
||||
};
|
||||
icn["SE.IC.FUSED TRACK"] = [
|
||||
text("?"),
|
||||
{
|
||||
type: "path",
|
||||
fill: false,
|
||||
d: "m 70,65 10,35 -10,35 60,0 -10,-35 10,-35 z"
|
||||
}
|
||||
];
|
||||
icn["SE.M1.OWN SHIP"] = textm1("OWN");
|
||||
icn["SE.M1.ANTIAIR WARFARE"] = textm1("AAW");
|
||||
icn["SE.M1.ANTISUBMARINE WARFARE"] = textm1("ASW");
|
||||
icn["SE.M1.ESCORT"] = textm1("E");
|
||||
icn["SE.M1.ELECTRONIC WARFARE"] = textm1("EW");
|
||||
icn["SE.M1.INTELLIGENCE, SURVEILLANCE, RECONNAISSANCE"] = textm1("ISR");
|
||||
icn["SE.M1.MINE COUNTER MEASURES"] = textm1("MCM");
|
||||
icn["SE.M1.MISSILE DEFENSE"] = textm1("MD");
|
||||
icn["SE.M1.MEDICAL"] = textm1("ME");
|
||||
icn["SE.M1.MINE COUNTERMEASURES"] = textm1("MCM");
|
||||
icn["SE.M1.MINE WARFARE"] = textm1("MIW");
|
||||
icn["SE.M1.REMOTE MULTI-MISSION VEHIHLE"] = textm1("RMV");
|
||||
icn["SE.M1.SPECIAL OPERATIONS FORCE"] = textm1("SOF");
|
||||
icn["SE.M1.SURFACE WARFARE"] = textm1("SUW");
|
||||
icn["SE.M1.BALLISTIC MISSILE"] = textm1("B");
|
||||
icn["SE.M1.GUIDED MISSILE"] = textm1("G");
|
||||
icn["SE.M1.OTHER GUIDED MISSILE"] = textm1("M");
|
||||
icn["SE.M1.TORPEDO"] = textm1("T");
|
||||
icn["SE.M1.CYBERSPACE"] = textm1("CYB");
|
||||
icn["SE.M1.HIJACKER"] = textm1("HJ");
|
||||
icn["SE.M2.CYBERSPACE"] = textm2("CYB");
|
||||
icn["SE.M1.DRONE-EQUIPPED"] = {
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d: "m 80,65 20,13 20,-13 0,-5 -20,10 -20,-10 z"
|
||||
};
|
||||
icn["SE.M1.HELICOPTER-EQUIPPED"] = textm1("H");
|
||||
icn["SE.M1.BALLISTIC MISSILE DEFENSE, SHOOTER"] = textm1("BM");
|
||||
icn[
|
||||
"SE.M1.BALLISTIC MISSILE DEFENSE, LONG- RANGE SURVEILLANCE AND TRACK (LRS&T)"
|
||||
] = textm1("ST");
|
||||
icn["SE.M1.SEA-BASE X-BAND"] = textm1("SBX");
|
||||
icn["SE.M1.HIJACKING/HIJACKED"] = textm1("H");
|
||||
icn["SE.M2.ANTISUBMARINE WARFARE"] = textm2("ASW");
|
||||
icn["SE.M2.MINE WARFARE"] = textm2("MIW");
|
||||
icn["SE.M2.SURFACE WARFARE"] = textm2("SUW");
|
||||
icn["SE.M2.NUCLEAR POWERED"] = textm2("N");
|
||||
icn["SE.M2.HEAVY"] = textm2("H");
|
||||
icn["SE.M2.LIGHT"] = textm2("L");
|
||||
icn["SE.M2.MEDIUM"] = textm2("M");
|
||||
icn["SE.M2.DOCK"] = textm2("D");
|
||||
icn["SE.M2.LOGISTICS"] = textm2("LOG");
|
||||
icn["SE.M2.TANK"] = textm2("T");
|
||||
icn["SE.M2.VEHICLE"] = textm2("V");
|
||||
icn["SE.M2.FAST"] = textm2("F");
|
||||
icn["SE.M2.AIR-CUSHIONED"] = textm2("J");
|
||||
icn["SE.M2.AIR-CUSHIONED (USA ONLY)"] = textm2("AC");
|
||||
icn["SE.M2.HYDROFOIL"] = textm2("K");
|
||||
icn["SE.M2.AUTONOMOUS CONTROL"] = textm2("AUT");
|
||||
icn["SE.M2.REMOTELY PILOTED"] = textm2("RP");
|
||||
icn["SE.M2.EXPENDABLE"] = textm2("EXP");
|
||||
|
||||
for (var key in icn) {
|
||||
if (!icn.hasOwnProperty(key)) continue;
|
||||
if (iconParts.hasOwnProperty(key)) console.warn("Override of: " + key);
|
||||
defaultProperties.call(this, icn[key], iconColor);
|
||||
iconParts[key] = icn[key];
|
||||
}
|
||||
}
|
||||
384
node_modules/milsymbol/src/iconparts/signals-intelligence.js
generated
vendored
Normal file
@@ -0,0 +1,384 @@
|
||||
import {
|
||||
defaultProperties,
|
||||
text,
|
||||
textm1,
|
||||
textm2
|
||||
} from "./iconparts-functions.js";
|
||||
|
||||
export default function(
|
||||
iconParts,
|
||||
metadata,
|
||||
colors,
|
||||
STD2525,
|
||||
monoColor,
|
||||
alternateMedal
|
||||
) {
|
||||
/*
|
||||
iconParts
|
||||
The existing object of icon parts
|
||||
|
||||
metadata
|
||||
properties object
|
||||
|
||||
colors
|
||||
color object
|
||||
|
||||
STD2525
|
||||
Is it 2525 then true, otherwise false
|
||||
|
||||
alternateMedal
|
||||
true/false for sea mine stuff
|
||||
*/
|
||||
|
||||
var affiliation = metadata.affiliation || "Friend";
|
||||
//If hostile and not monoColor, make it red, otherwise use the iconColor.
|
||||
var iconColor = colors.iconColor[affiliation];
|
||||
|
||||
//var numberSIDC = metadata.numberSIDC;
|
||||
var icn = {};
|
||||
|
||||
// SIGNALS INTELLIGENCE ==========================================================
|
||||
//if(symbol.codingscheme == "I"){
|
||||
icn["SI.IC.COMMUNICATIONS"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 93,120 14,0 0,0 m -7,-27 0,27 m 2,-25 8,2 -5,5 13,3 m -20,-10 -8,2 5,5 -14,3 m 21,-13 8,-2 -5,-5 13,-3 m -37,0 14,3 -5,5 8,2",
|
||||
fill: false
|
||||
};
|
||||
icn["SI.IC.RADAR"] = {
|
||||
type: "path",
|
||||
d: "m 115,90 -15,15 0,-15 -15,15 M 80,85 c 0,25 15,35 35,35",
|
||||
fill: false
|
||||
};
|
||||
icn["SI.I.JAMMER / ELECTRONIC COUNTER-MEASURES"] = text("J");
|
||||
|
||||
icn["SI.M1.ANTI-AIRCRAFT FIRE CONTROL"] = textm1("AA");
|
||||
icn["SI.M1.AIRBORNE SEARCH AND BOMBING"] = textm1("AB");
|
||||
icn["SI.M1.AIRBORNE INTERCEPT"] = textm1("AI");
|
||||
icn["SI.M1.ALTIMETER"] = textm1("AL");
|
||||
icn["SI.M1.AIRBORNE RECONNAISSANCE AND MAPPING"] = textm1("AM");
|
||||
icn["SI.M1.AIR TRAFFIC CONTROL"] = textm1("AT");
|
||||
icn["SI.M1.BEACON TRANSPONDER (NOT IFF)"] = textm1("BN");
|
||||
icn["SI.M1.BATTLEFIELD SURVEILLANCE"] = textm1("BS");
|
||||
icn["SI.M1.CONTROLLED APPROACH"] = textm1("CA");
|
||||
icn["SI.M1.CONTROLLED INTERCEPT"] = textm1("CI");
|
||||
icn["SI.M1.CELLULAR/MOBILE"] = textm1("CM");
|
||||
icn["SI.M1.COASTAL SURVEILLANCE"] = textm1("CS");
|
||||
icn["SI.M1.CYBER"] = textm1("CYB");
|
||||
icn["SI.M1.DECOY/MIMIC"] = textm1("DC");
|
||||
icn["SI.M1.DATA TRANSMISSION"] = textm1("DT");
|
||||
icn["SI.M1.EARTH SURVEILLANCE"] = textm1("ES");
|
||||
icn["SI.M1.EARLY WARNING"] = textm1("EW");
|
||||
icn["SI.M1.FIRE CONTROL"] = textm1("FC");
|
||||
icn["SI.M1.GROUND MAPPING"] = textm1("GM");
|
||||
icn["SI.M1.HEIGHT FINDING"] = textm1("HF");
|
||||
icn["SI.M1.HARBOR SURVEILLANCE"] = textm1("HS");
|
||||
icn["SI.M1.IDENTIFICATION, FRIEND OR FOE (INTERROGATOR)"] = textm1("IF");
|
||||
icn["SI.M1.INSTRUMENT LANDING SYSTEM"] = textm1("IL");
|
||||
icn["SI.M1.IONOSPHERIC SOUNDING"] = textm1("IS");
|
||||
icn["SI.M1.IDENTIFICATION, FRIEND OR FOE (TRANSPONDER)"] = textm1("IT");
|
||||
icn["SI.M1.BARRAGE JAMMER"] = textm1("JB");
|
||||
icn["SI.M1.CLICK JAMMER"] = textm1("JC");
|
||||
icn["SI.M1.DECEPTIVE JAMMER"] = textm1("JD");
|
||||
icn["SI.M1.FREQUENCY SWEPT JAMMER"] = textm1("JF");
|
||||
icn["SI.M1.JAMMER (GENERAL)"] = textm1("JG");
|
||||
icn["SI.M1.NOISE JAMMER"] = textm1("JN");
|
||||
icn["SI.M1.PULSED JAMMER"] = textm1("JP");
|
||||
icn["SI.M1.REPEATER JAMMER"] = textm1("JR");
|
||||
icn["SI.M1.SPOT NOISE JAMMER"] = textm1("JS");
|
||||
icn["SI.M1.TRANSPONDER JAMMER"] = textm1("JT");
|
||||
icn["SI.M1.MISSILE ACQUISITION"] = textm1("MA");
|
||||
icn["SI.M1.MISSILE CONTROL"] = textm1("MC");
|
||||
icn["SI.M1.MISSILE DOWNLINK"] = textm1("MD");
|
||||
icn["SI.M1.METEOROLOGICAL"] = textm1("ME");
|
||||
icn["SI.M1.MULTI-FUNCTION"] = textm1("MF");
|
||||
icn["SI.M1.MISSILE GUIDANCE"] = textm1("MG");
|
||||
icn["SI.M1.MISSILE HOMING"] = textm1("MH");
|
||||
icn["SI.M1.MISSILE TRACKING"] = textm1("MT");
|
||||
icn["SI.M1.NAVIGATIONAL/GENERAL"] = textm1("NA");
|
||||
icn["SI.M1.NAVIGATIONAL/DISTANCE MEASURING EQUIPMENT"] = textm1("ND");
|
||||
icn["SI.M1.NAVIGATION/TERRAIN FOLLOWING"] = textm1("NT");
|
||||
icn["SI.M1.NAVIGATIONAL/WEATHER AVOIDANCE"] = textm1("NW");
|
||||
icn["SI.M1.OMNI-LINE OF SIGHT (LOS)"] = textm1("OL");
|
||||
icn["SI.M1.PROXIMITY USE"] = textm1("PF");
|
||||
icn["SI.M1.POINT-TO-POINT LINE OF SIGHT (LOS)"] = textm1("PP");
|
||||
icn["SI.M1.INSTRUMENTATION"] = textm1("RI");
|
||||
icn["SI.M1.RANGE ONLY"] = textm1("RO");
|
||||
icn["SI.M1.SONOBUOY"] = textm1("SB");
|
||||
icn["SI.M1.SATELLITE DOWNLINK"] = textm1("SD");
|
||||
icn["SI.M1.SPACE"] = textm1("SP");
|
||||
icn["SI.M1.SURFACE SEARCH"] = textm1("SS");
|
||||
icn["SI.M1.SHELL TRACKING"] = textm1("ST");
|
||||
icn["SI.M1.SATELLITE UPLINK"] = textm1("SU");
|
||||
icn["SI.M1.TARGET ACQUISITION"] = textm1("TA");
|
||||
icn["SI.M1.TARGET ILLUMINATION"] = textm1("TI");
|
||||
icn["SI.M1.TROPOSPHERIC SCATTER"] = textm1("TS");
|
||||
icn["SI.M1.TARGET TRACKING"] = textm1("TT");
|
||||
icn["SI.M1.UNKNOWN"] = textm1("UN");
|
||||
icn["SI.M1.VIDEO REMOTING"] = textm1("VR");
|
||||
icn["SI.M1.EXPERIMENTAL"] = textm1("XP");
|
||||
icn["SI.M1.ALPHA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "A"
|
||||
};
|
||||
icn["SI.M1.BRAVO"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "B"
|
||||
};
|
||||
icn["SI.M1.CHARLIE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "C"
|
||||
};
|
||||
icn["SI.M1.DELTA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "D"
|
||||
};
|
||||
icn["SI.M1.ECHO"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "E"
|
||||
};
|
||||
icn["SI.M1.FOXTROT"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "F"
|
||||
};
|
||||
icn["SI.M1.HOTEL"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "H"
|
||||
};
|
||||
icn["SI.M1.INDY"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "I"
|
||||
};
|
||||
icn["SI.M1.MIKE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "M"
|
||||
};
|
||||
icn["SI.M1.OSCAR"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "O"
|
||||
};
|
||||
icn["SI.M1.PAPA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "P"
|
||||
};
|
||||
icn["SI.M1.SIERRA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "S"
|
||||
};
|
||||
icn["SI.M1.TANGO"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "T"
|
||||
};
|
||||
icn["SI.M1.UNIFORM"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "U"
|
||||
};
|
||||
icn["SI.M2.ALPHA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "A"
|
||||
};
|
||||
icn["SI.M2.BRAVO"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "B"
|
||||
};
|
||||
icn["SI.M2.CHARLIE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "C"
|
||||
};
|
||||
icn["SI.M2.CYBER"] = textm2("CYB");
|
||||
icn["SI.M2.DELTA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "D"
|
||||
};
|
||||
icn["SI.M2.ECHO"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "E"
|
||||
};
|
||||
icn["SI.M2.FOXTROT"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "F"
|
||||
};
|
||||
icn["SI.M2.GOLF"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "G"
|
||||
};
|
||||
icn["SI.M2.INDY"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "I"
|
||||
};
|
||||
icn["SI.M2.LIMA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "L"
|
||||
};
|
||||
icn["SI.M2.MIKE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "M"
|
||||
};
|
||||
icn["SI.M2.NOVEMBER"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "N"
|
||||
};
|
||||
icn["SI.M2.PAPA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "P"
|
||||
};
|
||||
icn["SI.M2.SIERRA"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "S"
|
||||
};
|
||||
icn["SI.M2.TANGO"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "T"
|
||||
};
|
||||
icn["SI.M2.UNIFORM"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "U"
|
||||
};
|
||||
icn["SI.M2.WHISKEY"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 25,
|
||||
text: "W"
|
||||
};
|
||||
icn["SI.M3.SPACE"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 75,
|
||||
fontsize: 25,
|
||||
text: "S"
|
||||
};
|
||||
icn["SI.M3.GROUND"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 100,
|
||||
y: 75,
|
||||
fontsize: 25,
|
||||
text: "G"
|
||||
};
|
||||
|
||||
for (var key in icn) {
|
||||
if (!icn.hasOwnProperty(key)) continue;
|
||||
if (iconParts.hasOwnProperty(key)) console.warn("Override of: " + key);
|
||||
defaultProperties.call(this, icn[key], iconColor);
|
||||
iconParts[key] = icn[key];
|
||||
}
|
||||
}
|
||||
424
node_modules/milsymbol/src/iconparts/space.js
generated
vendored
Normal file
@@ -0,0 +1,424 @@
|
||||
import {
|
||||
defaultProperties,
|
||||
text,
|
||||
textm1,
|
||||
textm2
|
||||
} from "./iconparts-functions.js";
|
||||
|
||||
export default function(
|
||||
iconParts,
|
||||
metadata,
|
||||
colors,
|
||||
STD2525,
|
||||
monoColor,
|
||||
alternateMedal
|
||||
) {
|
||||
/*
|
||||
iconParts
|
||||
The existing object of icon parts
|
||||
|
||||
metadata
|
||||
properties object
|
||||
|
||||
colors
|
||||
color object
|
||||
|
||||
STD2525
|
||||
Is it 2525 then true, otherwise false
|
||||
|
||||
alternateMedal
|
||||
true/false for sea mine stuff
|
||||
*/
|
||||
|
||||
var affiliation = metadata.affiliation || "Friend";
|
||||
var frame = metadata.frame;
|
||||
var numberSIDC = metadata.numberSIDC;
|
||||
|
||||
//If hostile and not monoColor, make it red, otherwise use the iconColor.
|
||||
var iconColor = colors.iconColor[affiliation];
|
||||
var iconFillColor = colors.iconFillColor[affiliation];
|
||||
var none = colors.none[affiliation];
|
||||
var black = colors.black[affiliation];
|
||||
|
||||
//var numberSIDC = metadata.numberSIDC;
|
||||
var icn = {};
|
||||
|
||||
icn["SP.I.ANTISATELLITE WEAPON"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 100,110 0,9 m 0,-34 0,5 m 0,-9 -2,4 4,0 z m -10,9 0,20 20,0 0,-20 z m 25,0 0,20 25,0 0,-20 z m -30,0 -25,0 0,20 25,0 z m 0,10 5,0 m 20,0 5,0"
|
||||
};
|
||||
icn["SP.I.ASTRONOMICAL SATELLITE"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 97,90 -1,-9 8,0 -1,9 m -5,20 1,9 2,0 1,-9 m 8,-10 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
};
|
||||
icn["SP.I.BIOSATELLITE"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 100,89 c 0,4.4 -3.6,8 -8,8 -4.4,0 -8,-3.6 -8,-8 0,-4.4 3.6,-8 8,-8 4.4,0 8,3.6 8,8 z m -10,10 0,20 20,0 0,-20 z m 25,0 0,20 25,0 0,-20 z m -30,0 -25,0 0,20 25,0 z m 0,10 5,0 m 20,0 5,0 m -17,-25 17,10 -1,2 -14,-7"
|
||||
};
|
||||
icn["SP.I.CAPSULE"] = {
|
||||
type: "path",
|
||||
d: "m 85,115 c -2,5 32,5 30,0 l -5,-30 c -1,-5 -19,-5 -20,0 z"
|
||||
};
|
||||
icn["SP.I.CIVILIAN ASTRONOMICAL SATELLITE"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 97,90 -1,-9 8,0 -1,9 m -5,20 1,9 2,0 1,-9 m 8,-10 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
};
|
||||
icn["SP.I.CIVILIAN BIOSATELLITE"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 100,89 c 0,4.4 -3.6,8 -8,8 -4.4,0 -8,-3.6 -8,-8 0,-4.4 3.6,-8 8,-8 4.4,0 8,3.6 8,8 z m -10,10 0,20 20,0 0,-20 z m 25,0 0,20 25,0 0,-20 z m -30,0 -25,0 0,20 25,0 z m 0,10 5,0 m 20,0 5,0 m -17,-25 17,10 -1,2 -14,-7"
|
||||
};
|
||||
icn["SP.I.CIVILIAN CAPSULE"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d: "m 85,115 c -2,5 32,5 30,0 l -5,-30 c -1,-5 -19,-5 -20,0 z"
|
||||
};
|
||||
icn["SP.I.CIVILIAN COMMUNICATIONS SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 110,109 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
},
|
||||
{ type: "path", fill: false, d: "m 100,90 0,9 M 75,81 c 16,12 34,12 50,0" }
|
||||
];
|
||||
icn["SP.I.CIVILIAN EARTH OBSERVATION SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 107,113 c 0,3.9 -3.1,7 -7,7 -3.9,0 -7,-3.1 -7,-7 0,-3.9 3.1,-7 7,-7 3.9,0 7,3.1 7,7 z m -17,-33 0,20 20,0 0,-20 z m 25,0 0,20 25,0 0,-20 z m -30,0 -25,0 0,20 25,0 z m 0,10 5,0 m 20,0 5,0"
|
||||
},
|
||||
{ type: "path", fill: false, d: "m 88,107 c 8,-9 16,-9 24,0" }
|
||||
];
|
||||
icn["SP.I.CIVILIAN MINIATURIZED SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 91.1,92 0,16 17.8,0 0,-16 z m 22.2,0 0,16 22.2,0 0,-16 z m -26.6,0 -22.2,0 0,16 22.2,0 z m 0,8 4.4,0 m 17.8,0 4.4,0"
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
fill: false,
|
||||
d:
|
||||
"m 90,119 10,-9 10,9 m -20,-38 10,9 10,-9 m 35,9 -10,10 10,10 M 55,90 65,100 55,110"
|
||||
}
|
||||
];
|
||||
icn["SP.I.CIVILIAN NAVIGATIONAL SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 110,109 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
fill: false,
|
||||
d: "m 88,87 c 8,6 16,6 24,0 m -20,8 8,-14 8,14"
|
||||
}
|
||||
];
|
||||
icn["SP.I.CIVILIAN ORBITER SHUTTLE"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d: "m 89,115 6,-25 c 3,-12 7,-12 10,0 l 6,25 -10,0 -1,5 -1,-5 z"
|
||||
};
|
||||
icn["SP.I.CIVILIAN SATELLITE"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 110,100 10,0 m -40,0 10,0 m -10,-10 -25,0 0,20 25,0 z m 40,0 0,20 25,0 0,-20 z m -30,0 0,20 20,0 0,-20 z"
|
||||
};
|
||||
icn["SP.I.CIVILIAN SPACE STATION"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 97.5,112.5 0,7.5 5,0 0,-7.5 z m 0,-32.5 5,0 0,26.4 -5,0 z m -0.3,7.6 C 83.3,88.2 72.5,93.5 72.5,100 c 0,6.9 12.3,12.5 27.5,12.5 15.2,0 27.5,-5.6 27.5,-12.5 0,-6.5 -11,-11.9 -25,-12.4 l 0,5.6 c 9.9,0.4 17.5,3.2 17.5,6.6 0,3.7 -8.9,6.7 -19.8,6.7 -10.9,0 -19.8,-3 -19.8,-6.7 0,-3.4 7.4,-6.1 17.1,-6.6 l 0,-5.6 c -0.1,0 -0.2,-0 -0.3,0 z"
|
||||
};
|
||||
icn["SP.I.CIVILIAN TETHERED SATELLITE"] = {
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 120,87 -20,12 m 33,-12 c 0,3.6 -2.9,6.5 -6.5,6.5 -3.6,0 -6.5,-2.9 -6.5,-6.5 0,-3.6 2.9,-6.5 6.5,-6.5 3.6,0 6.5,2.9 6.5,6.5 z m -23,22 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
};
|
||||
icn["SP.I.CIVILIAN WEATHER SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
fill: STD2525 ? iconFillColor : !frame ? iconFillColor : false,
|
||||
d:
|
||||
"m 110,109 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
textanchor: "middle",
|
||||
x: 100,
|
||||
y: 95,
|
||||
fontsize: 25,
|
||||
text: "WX"
|
||||
}
|
||||
];
|
||||
icn["SP.I.CIVILIAN"] = text("CIV");
|
||||
icn["SP.I.CIVILIAN"].fill =
|
||||
STD2525 || numberSIDC ? iconFillColor : !frame ? iconFillColor : false;
|
||||
icn["SP.I.CIVILIAN"].stroke = black;
|
||||
icn["SP.I.CIVILIAN"].strokewidth = 3;
|
||||
icn["SP.I.COMMUNICATIONS SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
d:
|
||||
"m 110,109 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
},
|
||||
{ type: "path", fill: false, d: "m 100,90 0,9 M 75,81 c 16,12 34,12 50,0" }
|
||||
];
|
||||
icn["SP.M1.CYBERSPACE"] = textm1("CYB");
|
||||
icn["SP.M2.CYBERSPACE"] = textm2("CYB");
|
||||
icn["SP.I.EARTH OBSERVATION SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
d:
|
||||
"m 107,113 c 0,3.9 -3.1,7 -7,7 -3.9,0 -7,-3.1 -7,-7 0,-3.9 3.1,-7 7,-7 3.9,0 7,3.1 7,7 z m -17,-33 0,20 20,0 0,-20 z m 25,0 0,20 25,0 0,-20 z m -30,0 -25,0 0,20 25,0 z m 0,10 5,0 m 20,0 5,0"
|
||||
},
|
||||
{ type: "path", fill: false, d: "m 88,107 c 8,-9 16,-9 24,0" }
|
||||
];
|
||||
icn["SP.I.FF.CREWED SPACE VEHICLE"] = {
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d:
|
||||
"m 100.3,62.4 c -1.8,-0 -4.3,3.7 -4.5,5.4 -2.5,11.3 -3.4,23.1 -6.2,33.4 -2.9,6.7 -6.8,8.3 -9.9,12.1 -3,3.6 -8.5,10.4 -8.5,10.4 l 0,6.4 c 0,0 5.9,0.9 8.9,1.2 3,0.2 8.7,0.1 8.7,0.1 l 0.3,4.3 4.3,0.2 0.2,3.1 5.8,0 0.9,6.5 0.9,-6.4 5.8,0 0.2,-3.1 4.3,-0.2 0.3,-4.3 c 0,0 5.7,0.1 8.7,-0.1 3,-0.2 8.9,-1.2 8.9,-1.2 l 0,-6.4 c 0,0 -5.5,-6.7 -8.5,-10.3 -3.1,-3.8 -7,-5.4 -9.9,-12.1 -2.8,-10.4 -3.7,-22.2 -6.2,-33.4 -0.3,-2.9 -2.7,-5.5 -4.5,-5.5 z"
|
||||
};
|
||||
icn["SP.I.FF.SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
stroke: false,
|
||||
d:
|
||||
"m 115,70 20,0 0,55 -20,0 z m -25,5 20,0 0,45 -20,0 z m -25,-5 20,0 0,55 -20,0 z"
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
fill: false,
|
||||
d: "M80,135 c10,-10 30,-10 40,0 M100,127 L100,100 M70,100 L130,100"
|
||||
}
|
||||
];
|
||||
icn["SP.I.FF.SPACE STATION"] = [
|
||||
{
|
||||
type: "path",
|
||||
d:
|
||||
"m 103.1,97.4 c -12.4,0.3 -25.7,0.1 -36.7,6.7 -4.1,2.1 -8.5,5.9 -7.8,11 0.2,3.7 0.3,7.4 0.5,11.1 6.2,7.8 16.6,10.4 26,11.8 14,1.8 28.5,1.2 42.1,-3 5.2,-1.7 10.4,-4.3 14.2,-8.3 0.3,-5.1 -0.3,-10.4 0.7,-15.3 -1.2,-4.3 -5.9,-6.4 -9.7,-8.2 -9.2,-4 -19.3,-5.4 -29.2,-5.6 z m -3.2,9.6 c 10.1,-0.2 20.5,1.9 29.1,7.4 -13,8.4 -29.6,9.7 -44.3,6.1 -4.9,-1.3 -9.7,-3.3 -13.7,-6.4 8.8,-4.9 18.9,-6.9 28.9,-7.2 z",
|
||||
fill: STD2525 ? iconFillColor : none
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
fill: false,
|
||||
stroke: "black",
|
||||
d:
|
||||
"m 96.9,107 c 0.7,-8.1 1.4,-16.3 2.1,-24.4 M 89.3,121.8 c 3.1,-13.2 6.2,-26.3 9.3,-39.5 4.9,12.7 9.7,25.5 14.6,38.2 m 27.8,-5.3 c -0.1,3.9 -0.2,7.8 -0.3,11.6 M 58.6,113.3 c 0.2,4.5 0.3,9 0.5,13.5 m -0.5,-1.2 c 3.5,6.3 11,8.6 17.6,10.5 16.4,4.1 33.9,3.9 50.1,-0.8 5.5,-1.8 11.8,-4.3 14.7,-9.7 m 0.5,-13 c -0.5,5.4 -6.1,8.1 -10.5,10 -15.4,5.7 -32.4,6.1 -48.5,3.6 -7.9,-1.4 -16.3,-3.4 -22.2,-9.2 -3.6,-3.9 -0.9,-9.6 3.4,-11.7 8.3,-5.2 18.3,-6.6 27.9,-7.5 13.5,-1 27.5,0 40.2,5.1 4.2,1.8 9.3,4.6 9.7,9.7 z m -13.3,1.6 c -8.2,-5.9 -18.8,-6.8 -28.6,-7 -9.5,0.1 -19.5,1.2 -27.6,6.4 l -0.6,0.5 m 58.9,-2.6 c -0.8,4.8 -6.1,6.4 -10,7.8 -13.2,3.7 -27.4,3.7 -40.5,-0 -3.8,-1.2 -8.1,-2.8 -9.8,-6.7 -0.7,-4.9 5,-7.1 8.7,-8.5 12.7,-4 26.6,-4 39.5,-1 4.4,1.2 9.8,2.8 11.9,7.3 l 0.1,0.5 0,0.5 z"
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
fill: "black",
|
||||
stroke: false,
|
||||
d:
|
||||
"M 75.2,93.1 C 88.9,87 102.6,80.8 116.3,74.7 c 2.3,1.3 4.7,2.6 7,3.9 -13.7,6 -27.3,12 -41,18 -2.4,-1.2 -4.8,-2.3 -7.2,-3.5 z"
|
||||
}
|
||||
];
|
||||
icn["SP.I.MANUAL TRACK"] = text("MAN");
|
||||
icn["SP.I.MILITARY"] = text("MIL");
|
||||
icn["SP.I.MINIATURIZED SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
d:
|
||||
"m 91.1,92 0,16 17.8,0 0,-16 z m 22.2,0 0,16 22.2,0 0,-16 z m -26.6,0 -22.2,0 0,16 22.2,0 z m 0,8 4.4,0 m 17.8,0 4.4,0"
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
fill: false,
|
||||
d:
|
||||
"m 90,119 10,-9 10,9 m -20,-38 10,9 10,-9 m 35,9 -10,10 10,10 M 55,90 65,100 55,110"
|
||||
}
|
||||
];
|
||||
icn["SP.I.NAVIGATIONAL SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
d:
|
||||
"m 110,109 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
},
|
||||
{
|
||||
type: "path",
|
||||
fill: false,
|
||||
d: "m 88,87 c 8,6 16,6 24,0 m -20,8 8,-14 8,14"
|
||||
}
|
||||
];
|
||||
icn["SP.I.ORBITER SHUTTLE"] = {
|
||||
type: "path",
|
||||
d: "m 89,115 6,-25 c 3,-12 7,-12 10,0 l 6,25 -10,0 -1,5 -1,-5 z"
|
||||
};
|
||||
icn["SP.I.RE-ENTRY VEHICLE"] = text("RV");
|
||||
icn["SP.I.RECONNAISSANCE SATELLITE"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 106,100 9,20 m -21,-20 -9,20 m 17,-20 3,20 m -7,-20 -3,20 m 15,-30 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
};
|
||||
icn["SP.I.SATELLITE, GENERAL"] = text("SAT");
|
||||
icn["SP.I.SATELLITE"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 110,100 10,0 m -40,0 10,0 m -10,-10 -25,0 0,20 25,0 z m 40,0 0,20 25,0 0,-20 z m -30,0 0,20 20,0 0,-20 z"
|
||||
};
|
||||
icn["SP.I.SPACE LAUNCH VEHICLE"] = text("SLV");
|
||||
icn["SP.I.SPACE STATION"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 97.5,112.5 0,7.5 5,0 0,-7.5 z m 0,-32.5 5,0 0,26.4 -5,0 z m -0.3,7.6 C 83.3,88.2 72.5,93.5 72.5,100 c 0,6.9 12.3,12.5 27.5,12.5 15.2,0 27.5,-5.6 27.5,-12.5 0,-6.5 -11,-11.9 -25,-12.4 l 0,5.6 c 9.9,0.4 17.5,3.2 17.5,6.6 0,3.7 -8.9,6.7 -19.8,6.7 -10.9,0 -19.8,-3 -19.8,-6.7 0,-3.4 7.4,-6.1 17.1,-6.6 l 0,-5.6 c -0.1,0 -0.2,-0 -0.3,0 z"
|
||||
};
|
||||
icn["SP.I.SPACE VEHICLE"] = text("SV");
|
||||
icn["SP.I.TETHERED SATELLITE"] = {
|
||||
type: "path",
|
||||
d:
|
||||
"m 120,87 -20,12 m 33,-12 c 0,3.6 -2.9,6.5 -6.5,6.5 -3.6,0 -6.5,-2.9 -6.5,-6.5 0,-3.6 2.9,-6.5 6.5,-6.5 3.6,0 6.5,2.9 6.5,6.5 z m -23,22 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
};
|
||||
icn["SP.I.WEATHER SATELLITE"] = [
|
||||
{
|
||||
type: "path",
|
||||
d:
|
||||
"m 110,109 5,0 m -30,0 5,0 m -5,-10 -25,0 0,20 25,0 z m 30,0 0,20 25,0 0,-20 z m -25,0 0,20 20,0 0,-20 z"
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
stroke: false,
|
||||
textanchor: "middle",
|
||||
x: 100,
|
||||
y: 100,
|
||||
fontsize: 25,
|
||||
text: "WX"
|
||||
}
|
||||
];
|
||||
icn["SP.M1.GEOSTATIONARY ORBIT (GO)"] = textm1("GO");
|
||||
icn["SP.M1.GEOSYNCHRONOUS ORBIT (GSO)"] = textm1("GSO");
|
||||
icn["SP.M1.HIGH EARTH ORBIT (HEO)"] = textm1("HEO");
|
||||
icn["SP.M1.LOW EARTH ORBIT (LEO)"] = textm1("LEO");
|
||||
icn["SP.M1.MEDIUM EARTH ORBIT (MEO)"] = textm1("MEO");
|
||||
icn["SP.M1.MOLNIYA ORBIT (MO)"] = textm1("MO");
|
||||
icn["SP.M2.INFRARED"] = textm2("IR");
|
||||
icn["SP.M2.OPTICAL"] = textm2("O");
|
||||
icn["SP.M2.RADAR"] = textm2("R");
|
||||
icn["SP.M2.SIGNALS INTELLIGENCE (SIGINT)"] = textm2("SI"); //Space Missile
|
||||
icn["SPACE.MISSILE.ICON"] = {
|
||||
type: "path",
|
||||
d: "M90,135 l0,-10 5,-5 0,-55 5,-5 5,5 0,55 5,5 0,10 -10,-10 z"
|
||||
};
|
||||
if (STD2525 || numberSIDC)
|
||||
icn["SPACE.MISSILE.ICON"].fill = frame
|
||||
? colors.fillColor.Unknown
|
||||
: colors.iconFillColor.Unknown;
|
||||
icn["SPACE.MISSILE.M1.BALLISTIC"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "B"
|
||||
};
|
||||
icn["SPACE.MISSILE.M1.INTERCEPTOR"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 68,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "I"
|
||||
};
|
||||
icn["SPACE.MISSILE.M1.SPACE"] = [
|
||||
{ type: "text", stroke: false, x: 68, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 68, y: 125, fontsize: 30, text: "P" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.ARROW"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "A" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.GROUND-BASED INTERCEPTOR (GBI)"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "G"
|
||||
};
|
||||
icn["SPACE.MISSILE.M2.INTERCONTINENTAL"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "I" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "C" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.INTERMEDIATE RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "I" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.LONG RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "L" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.MEDIUM RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "M" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.PATRIOT"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "P"
|
||||
};
|
||||
icn["SPACE.MISSILE.M2.SHORT RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.SPACE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "P" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.STANDARD MISSILE - 3 (SM-3)"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "3" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.STANDARD MISSILE - TERMINAL PHASE (SM-T)"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "S" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "T" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.TERMINAL HIGH-ALTITUDE AREA DEFENSE (THAAD)"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "T"
|
||||
};
|
||||
icn["SPACE.MISSILE.M2.CLOSE RANGE"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "C" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "R" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.DEBRIS"] = [
|
||||
{ type: "text", stroke: false, x: 132, y: 95, fontsize: 30, text: "D" },
|
||||
{ type: "text", stroke: false, x: 132, y: 125, fontsize: 30, text: "B" }
|
||||
];
|
||||
icn["SPACE.MISSILE.M2.UNKNOWN"] = {
|
||||
type: "text",
|
||||
stroke: false,
|
||||
x: 132,
|
||||
y: 110,
|
||||
fontsize: 30,
|
||||
text: "U"
|
||||
};
|
||||
icn["SPACE.PLANET LANDER"] = text("PL");
|
||||
//*/
|
||||
for (var key in icn) {
|
||||
if (!icn.hasOwnProperty(key)) continue;
|
||||
if (iconParts.hasOwnProperty(key)) console.warn("Override of: " + key);
|
||||
defaultProperties.call(this, icn[key], iconColor);
|
||||
iconParts[key] = icn[key];
|
||||
}
|
||||
}
|
||||
1108
node_modules/milsymbol/src/iconparts/subsurface.js
generated
vendored
Normal file
3845
node_modules/milsymbol/src/iconparts/tactical-points.js
generated
vendored
Normal file
79
node_modules/milsymbol/src/lettersidc.js
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
/* ***************************************************************************************
|
||||
Letter based SIDC
|
||||
*************************************************************************************** */
|
||||
import space from "./lettersidc/sidc/space.js";
|
||||
import air from "./lettersidc/sidc/air.js";
|
||||
import ground from "./lettersidc/sidc/ground.js";
|
||||
import equipment from "./lettersidc/sidc/equipment.js";
|
||||
import installations from "./lettersidc/sidc/installations.js";
|
||||
import sea from "./lettersidc/sidc/sea.js";
|
||||
import subsurface from "./lettersidc/sidc/subsurface.js";
|
||||
import sof from "./lettersidc/sidc/sof.js";
|
||||
import signalsIntelligence from "./lettersidc/sidc/signalsIntelligence.js";
|
||||
import stabilityoperations from "./lettersidc/sidc/stabilityoperations.js";
|
||||
import emergencymanagementsymbols from "./lettersidc/sidc/emergencymanagementsymbols.js";
|
||||
// Adding support for symbols in MIL-STD-2525B change 2 that are missing in 2525C
|
||||
import std2525bextra from "./lettersidc/sidc/2525b-ch2.js";
|
||||
|
||||
import tacticalpoints2525 from "./lettersidc/sidc/tactical-points-2525.js";
|
||||
import tacticalpointsapp6 from "./lettersidc/sidc/tactical-points-app6.js";
|
||||
|
||||
var app6b = [
|
||||
space,
|
||||
air,
|
||||
ground,
|
||||
equipment,
|
||||
installations,
|
||||
sea,
|
||||
subsurface,
|
||||
sof,
|
||||
tacticalpointsapp6
|
||||
];
|
||||
var std2525b = [
|
||||
space,
|
||||
air,
|
||||
ground,
|
||||
equipment,
|
||||
installations,
|
||||
sea,
|
||||
subsurface,
|
||||
sof,
|
||||
signalsIntelligence,
|
||||
stabilityoperations,
|
||||
std2525bextra,
|
||||
tacticalpoints2525
|
||||
];
|
||||
var std2525c = [
|
||||
space,
|
||||
air,
|
||||
ground,
|
||||
equipment,
|
||||
installations,
|
||||
sea,
|
||||
subsurface,
|
||||
sof,
|
||||
signalsIntelligence,
|
||||
stabilityoperations,
|
||||
emergencymanagementsymbols,
|
||||
tacticalpoints2525
|
||||
];
|
||||
|
||||
export {
|
||||
app6b,
|
||||
std2525b,
|
||||
std2525c,
|
||||
space,
|
||||
air,
|
||||
ground,
|
||||
equipment,
|
||||
installations,
|
||||
sea,
|
||||
subsurface,
|
||||
sof,
|
||||
signalsIntelligence,
|
||||
stabilityoperations,
|
||||
emergencymanagementsymbols,
|
||||
std2525bextra,
|
||||
tacticalpoints2525,
|
||||
tacticalpointsapp6
|
||||
};
|
||||
11
node_modules/milsymbol/src/lettersidc/geticons.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
//import { ms } from "../ms.js";
|
||||
export function geticons(ms, iconParts, STD2525) {
|
||||
var iconSIDC = {};
|
||||
var iconBbox = {};
|
||||
|
||||
for (var i in ms._iconSIDC.letter) {
|
||||
if (!ms._iconSIDC.letter.hasOwnProperty(i)) continue;
|
||||
ms._iconSIDC.letter[i].call(this, iconSIDC, iconBbox, iconParts, STD2525);
|
||||
}
|
||||
return { icons: iconSIDC, bbox: iconBbox };
|
||||
}
|
||||
1729
node_modules/milsymbol/src/lettersidc/labels/tactical-points-2525.js
generated
vendored
Normal file
1791
node_modules/milsymbol/src/lettersidc/labels/tactical-points-app6.js
generated
vendored
Normal file
385
node_modules/milsymbol/src/lettersidc/metadata.js
generated
vendored
Normal file
@@ -0,0 +1,385 @@
|
||||
//import { ms } from "../ms.js";
|
||||
export function metadata(ms, metadata, mapping) {
|
||||
this.options.sidc = this.options.sidc.toUpperCase();
|
||||
|
||||
var codingscheme =
|
||||
this.options.sidc.charAt(0) != "" ? this.options.sidc.charAt(0) : "-";
|
||||
var affiliation =
|
||||
this.options.sidc.charAt(1) != "" ? this.options.sidc.charAt(1) : "-";
|
||||
var battledimension =
|
||||
this.options.sidc.charAt(2) != "" ? this.options.sidc.charAt(2) : "-";
|
||||
var status =
|
||||
this.options.sidc.charAt(3) != "" ? this.options.sidc.charAt(3) : "-";
|
||||
var functionid = (metadata.functionid =
|
||||
this.options.sidc.substr(4, 6) != ""
|
||||
? this.options.sidc.substr(4, 6)
|
||||
: "------");
|
||||
var symbolmodifier11 =
|
||||
this.options.sidc.charAt(10) != "" ? this.options.sidc.charAt(10) : "-";
|
||||
var symbolmodifier12 =
|
||||
this.options.sidc.charAt(11) != "" ? this.options.sidc.charAt(11) : "-";
|
||||
/*
|
||||
var countrycode = this.options.sidc.substr(12, 2) != ""
|
||||
? this.options.sidc.substr(12, 2)
|
||||
: "--";
|
||||
var orderofbattle = this.options.sidc.charAt(14) != "" ? this.options.sidc.charAt(14) : "-";
|
||||
*/
|
||||
if (["H", "S", "J", "K"].indexOf(affiliation) > -1)
|
||||
metadata.affiliation = mapping.affiliation[0];
|
||||
if (["F", "A", "D", "M"].indexOf(affiliation) > -1)
|
||||
metadata.affiliation = mapping.affiliation[1];
|
||||
if (["N", "L"].indexOf(affiliation) > -1)
|
||||
metadata.affiliation = mapping.affiliation[2];
|
||||
if (["P", "U", "G", "W", "O"].indexOf(affiliation) > -1)
|
||||
metadata.affiliation = mapping.affiliation[3];
|
||||
|
||||
if (["P", "A"].indexOf(battledimension) > -1)
|
||||
metadata.dimension = mapping.dimension[0];
|
||||
if (["G", "Z", "F", "X"].indexOf(battledimension) > -1)
|
||||
metadata.dimension = mapping.dimension[1];
|
||||
if (["S"].indexOf(battledimension) > -1)
|
||||
metadata.dimension = mapping.dimension[2];
|
||||
if (["U"].indexOf(battledimension) > -1)
|
||||
metadata.dimension = mapping.dimension[3];
|
||||
|
||||
//dimension is in Space
|
||||
if (battledimension == "P" && codingscheme != "O") metadata.space = true;
|
||||
//codingscheme that are Activities
|
||||
if (codingscheme == "O" && ["V", "O", "R"].indexOf(battledimension) > -1) {
|
||||
metadata.activity = true;
|
||||
}
|
||||
//SymbolSets that are control-measure
|
||||
if (codingscheme == "G") metadata.controlMeasure = true;
|
||||
//symbolmodifier11 that are Installations
|
||||
if (symbolmodifier11 == "H") metadata.installation = true;
|
||||
//Planned/Anticipated/Suspect symbols should have a dashed outline
|
||||
if (this.style.frame && status == "A")
|
||||
metadata.notpresent = ms._dashArrays.anticipated;
|
||||
if (this.style.frame && ["P", "A", "S", "G", "M"].indexOf(affiliation) > -1) {
|
||||
metadata.notpresent = ms._dashArrays.pending;
|
||||
}
|
||||
//Should it have a Condition Bar
|
||||
if (status == "C") metadata.condition = mapping.status[2];
|
||||
if (status == "D") metadata.condition = mapping.status[3];
|
||||
if (status == "X") metadata.condition = mapping.status[4];
|
||||
if (status == "F") metadata.condition = mapping.status[5];
|
||||
//Is it part of Exercise Symbols
|
||||
if (["G", "W", "D", "L", "M", "J", "K"].indexOf(affiliation) > -1) {
|
||||
metadata.context = mapping.context[1];
|
||||
}
|
||||
//Framing of SO tactical symbols differs slightly from C2 Symbology: UEI tactical symbols in that there is only one battle dimension: ground.
|
||||
if (codingscheme == "O") metadata.dimension = mapping.dimension[1];
|
||||
//Framing of EMS tactical symbols differs slightly from C2 Symbology: UEI tactical symbols in that there is only one battle dimension: ground.
|
||||
if (codingscheme == "E") metadata.dimension = mapping.dimension[1];
|
||||
//First save the dimensionType and affiliationType before we modifies it...
|
||||
metadata.baseDimension = metadata.dimension;
|
||||
metadata.baseAffilation = metadata.affiliation;
|
||||
//Joker and faker should have the shape of friendly
|
||||
if (affiliation == "J") metadata.joker = true;
|
||||
if (affiliation == "K") metadata.faker = true;
|
||||
if (metadata.joker || metadata.faker) {
|
||||
metadata.affiliation = mapping.affiliation[1];
|
||||
}
|
||||
//Ground Equipment should have the same geometry as sea Friend...
|
||||
if (
|
||||
codingscheme == "S" &&
|
||||
battledimension == "G" &&
|
||||
functionid.charAt(0) == "E"
|
||||
)
|
||||
metadata.dimension = mapping.dimension[2];
|
||||
//Signal INTELLIGENCE Ground should have the same geometry as sea Friend...
|
||||
if (codingscheme == "I" && battledimension == "G")
|
||||
metadata.dimension = mapping.dimension[2];
|
||||
//Some EMS symbosls should have the same geometry as sea Friend...
|
||||
if (
|
||||
codingscheme == "E" &&
|
||||
((battledimension == "O" &&
|
||||
[
|
||||
"AB----",
|
||||
"AE----",
|
||||
"AF----",
|
||||
"BB----",
|
||||
"CB----",
|
||||
"CC----",
|
||||
"DB----",
|
||||
"DDB---",
|
||||
"DEB---",
|
||||
"DFB---",
|
||||
"DGB---",
|
||||
"DHB---",
|
||||
"DIB---",
|
||||
"DJB---",
|
||||
"DLB---",
|
||||
"DMB---",
|
||||
"DOB---",
|
||||
"EA----",
|
||||
"EB----",
|
||||
"EC----",
|
||||
"ED----",
|
||||
"EE----"
|
||||
].indexOf(functionid) > -1) ||
|
||||
(battledimension == "F" &&
|
||||
["BA----", "MA----", "MC----"].indexOf(functionid) > -1))
|
||||
) {
|
||||
metadata.dimension = mapping.dimension[2];
|
||||
}
|
||||
//Setting up Headquarters/task force/dummy
|
||||
if (
|
||||
["F", "G", "C", "D"].indexOf(symbolmodifier11) > -1 ||
|
||||
(symbolmodifier11 == "H" && symbolmodifier12 == "B")
|
||||
) {
|
||||
metadata.feintDummy = true;
|
||||
}
|
||||
if (["A", "B", "C", "D"].indexOf(symbolmodifier11) > -1) {
|
||||
metadata.headquarters = true;
|
||||
}
|
||||
if (battledimension == "G" && functionid == "UH----") {
|
||||
metadata.headquarters = true;
|
||||
}
|
||||
if (["E", "B", "G", "D"].indexOf(symbolmodifier11) > -1) {
|
||||
metadata.taskForce = true;
|
||||
}
|
||||
//Setting up Echelon/Mobility/Towed Array Amplifier
|
||||
if (symbolmodifier12 == "A") metadata.echelon = mapping.echelonMobility[11]; //Team/Crew
|
||||
if (symbolmodifier12 == "B" && symbolmodifier11 != "H") {
|
||||
metadata.echelon = mapping.echelonMobility[12]; //Squad
|
||||
}
|
||||
if (symbolmodifier12 == "C") metadata.echelon = mapping.echelonMobility[13]; //Section
|
||||
if (symbolmodifier12 == "D") metadata.echelon = mapping.echelonMobility[14]; //Platoon/detachment
|
||||
if (symbolmodifier12 == "E") metadata.echelon = mapping.echelonMobility[15]; //Company/battery/troop
|
||||
if (symbolmodifier12 == "F") metadata.echelon = mapping.echelonMobility[16]; //Battalion/squadron
|
||||
if (symbolmodifier12 == "G") metadata.echelon = mapping.echelonMobility[17]; //Regiment/group
|
||||
if (symbolmodifier12 == "H") metadata.echelon = mapping.echelonMobility[18]; //Brigade
|
||||
if (symbolmodifier12 == "I") metadata.echelon = mapping.echelonMobility[21]; //Division
|
||||
if (symbolmodifier12 == "J") metadata.echelon = mapping.echelonMobility[22]; //Corps/MEF
|
||||
if (symbolmodifier12 == "K") metadata.echelon = mapping.echelonMobility[23]; //Army
|
||||
if (symbolmodifier12 == "L" && symbolmodifier11 != "N") {
|
||||
metadata.echelon = mapping.echelonMobility[24]; //Army Group/front
|
||||
}
|
||||
if (symbolmodifier12 == "M") metadata.echelon = mapping.echelonMobility[25]; //Region/Theater
|
||||
if (symbolmodifier12 == "N") metadata.echelon = mapping.echelonMobility[26]; //Command
|
||||
if (symbolmodifier11 == "M") {
|
||||
switch (symbolmodifier12) {
|
||||
case "O":
|
||||
metadata.mobility = mapping.echelonMobility[31]; //Wheeled limited cross country
|
||||
break;
|
||||
case "P":
|
||||
metadata.mobility = mapping.echelonMobility[32]; //Wheeled cross country
|
||||
break;
|
||||
case "Q":
|
||||
metadata.mobility = mapping.echelonMobility[33]; //Tracked
|
||||
break;
|
||||
case "R":
|
||||
metadata.mobility = mapping.echelonMobility[34]; //Wheeled and tracked combination
|
||||
break;
|
||||
case "S":
|
||||
metadata.mobility = mapping.echelonMobility[35]; //Towed
|
||||
break;
|
||||
case "T":
|
||||
metadata.mobility = mapping.echelonMobility[36]; //Rail
|
||||
break;
|
||||
case "U":
|
||||
metadata.mobility = mapping.echelonMobility[41]; //Over snow (prime mover)
|
||||
break;
|
||||
case "V":
|
||||
metadata.mobility = mapping.echelonMobility[42]; //Sled
|
||||
break;
|
||||
case "W":
|
||||
metadata.mobility = mapping.echelonMobility[37]; //Pack animals
|
||||
break;
|
||||
case "X":
|
||||
metadata.mobility = mapping.echelonMobility[51]; //Barge
|
||||
break;
|
||||
case "Y":
|
||||
metadata.mobility = mapping.echelonMobility[52]; //Amphibious
|
||||
break;
|
||||
default:
|
||||
metadata.mobility = undefined;
|
||||
}
|
||||
}
|
||||
if (symbolmodifier11 == "N") {
|
||||
switch (symbolmodifier12) {
|
||||
case "S":
|
||||
metadata.mobility = mapping.echelonMobility[61]; //Short towed array
|
||||
break;
|
||||
case "L":
|
||||
metadata.mobility = mapping.echelonMobility[62]; //Long towed Array
|
||||
break;
|
||||
default:
|
||||
metadata.mobility = undefined;
|
||||
}
|
||||
}
|
||||
//This is for 2525
|
||||
//Civilian stuff
|
||||
if (
|
||||
(battledimension == "A" && functionid.charAt(0) == "C") ||
|
||||
(battledimension == "G" && functionid.substring(0, 3) == "EVC") ||
|
||||
(battledimension == "S" && functionid.charAt(0) == "X")
|
||||
) {
|
||||
metadata.civilian = true;
|
||||
}
|
||||
//Colors will be have to be fixed in symbolColors
|
||||
if (battledimension == "Z" || battledimension == "X") {
|
||||
if (["P", "U", "F", "N", "H", "A", "S", "G", "W"].indexOf(affiliation) > -1)
|
||||
metadata.dimensionUnknown = true;
|
||||
//To get the correct geometry for a lot of stuff later we will have to modify the affliationType.
|
||||
if (["F", "A"].indexOf(affiliation) > -1) metadata.dimension = "Sea";
|
||||
//If battle dimension is unknown and the affiliation is D,L,M,J,K we should not have a symbol
|
||||
if (["D", "L", "M", "J", "K"].indexOf(affiliation) > -1)
|
||||
metadata.affiliation = "none";
|
||||
}
|
||||
//Forcing unframing of symbols that shouldn't have a frame.
|
||||
if (
|
||||
battledimension == "S" &&
|
||||
[
|
||||
"O-----",
|
||||
"ED----",
|
||||
"EP----",
|
||||
"EV----",
|
||||
"ZM----",
|
||||
"ZN----",
|
||||
"ZI----"
|
||||
].indexOf(functionid) > -1
|
||||
) {
|
||||
metadata.frame = false;
|
||||
}
|
||||
if (
|
||||
codingscheme == "E" &&
|
||||
battledimension == "N" &&
|
||||
[
|
||||
"AA----",
|
||||
"AB----",
|
||||
"AC----",
|
||||
"AD----",
|
||||
"AE----",
|
||||
"AG----",
|
||||
"BB----",
|
||||
"BC----",
|
||||
"BF----",
|
||||
"BM----",
|
||||
"-C-----",
|
||||
"CA----",
|
||||
"CB----",
|
||||
"CC----",
|
||||
"CD----",
|
||||
"CE----"
|
||||
].indexOf(functionid) > -1
|
||||
) {
|
||||
metadata.frame = false;
|
||||
}
|
||||
if (
|
||||
codingscheme == "W" &&
|
||||
battledimension == "S" &&
|
||||
[
|
||||
"WSVE--",
|
||||
"WSD-LI",
|
||||
"WSFGSO",
|
||||
"WSGRL-",
|
||||
"WSR-LI",
|
||||
"WSDSLM",
|
||||
"WSS-LI",
|
||||
"WSTMH-",
|
||||
"WST-FC",
|
||||
"WSTSS-"
|
||||
].indexOf(functionid) > -1
|
||||
) {
|
||||
metadata.frame = false;
|
||||
}
|
||||
//We have some special symbols that should be unframed but filled, like mines, let us fix them.
|
||||
if (
|
||||
battledimension == "U" &&
|
||||
[
|
||||
"WM----",
|
||||
"WMD---",
|
||||
"WMG---",
|
||||
"WMGD--",
|
||||
"WMGX--",
|
||||
"WMGE--",
|
||||
"WMGC--",
|
||||
"WMGR--",
|
||||
"WMGO--",
|
||||
"WMM---",
|
||||
"WMMD--",
|
||||
"WMMX--",
|
||||
"WMME--",
|
||||
"WMMC--",
|
||||
"WMMR--",
|
||||
"WMMO--",
|
||||
"WMF---",
|
||||
"WMFD--",
|
||||
"WMFX--",
|
||||
"WMFE--",
|
||||
"WMFC--",
|
||||
"WMFR--",
|
||||
"WMFO--",
|
||||
"WMO---",
|
||||
"WMOD--",
|
||||
"WMX---",
|
||||
"WME---",
|
||||
"WMA---",
|
||||
"WMC---",
|
||||
"WMR---",
|
||||
"WMB---",
|
||||
"WMBD--",
|
||||
"WMN---",
|
||||
"WMS---",
|
||||
"WMSX--",
|
||||
"WMSD--",
|
||||
"WD----",
|
||||
"WDM---",
|
||||
"WDMG--",
|
||||
"WDMM--",
|
||||
"ND----",
|
||||
"E-----",
|
||||
"V-----",
|
||||
"X-----",
|
||||
"NBS---",
|
||||
"NBR---",
|
||||
"NBW---",
|
||||
"NM----",
|
||||
"NA----"
|
||||
].indexOf(functionid) > -1
|
||||
) {
|
||||
if (metadata.STD2525) {
|
||||
metadata.fill = false;
|
||||
if (functionid == "WD----") {
|
||||
metadata.fill = true;
|
||||
}
|
||||
if (
|
||||
["ND----", "NBS---", "NBR---", "NBW---", "NM----", "NA----"].indexOf(
|
||||
functionid
|
||||
) > -1
|
||||
) {
|
||||
metadata.fill = true;
|
||||
metadata.frame = false;
|
||||
}
|
||||
} else {
|
||||
metadata.frame = false;
|
||||
if (["E-----", "V-----", "X-----"].indexOf(functionid) > -1) {
|
||||
metadata.fill = false;
|
||||
metadata.frame = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Some symbols in EMS and symbols from tactical graphics
|
||||
if (
|
||||
this.options.sidc.substr(0, 3) == "WAS" ||
|
||||
this.options.sidc.substr(0, 3) == "WOS" ||
|
||||
codingscheme == "G"
|
||||
) {
|
||||
metadata.frame = false;
|
||||
}
|
||||
|
||||
//This is for APP6 tactical points with frames
|
||||
if (
|
||||
codingscheme == "G" &&
|
||||
battledimension == "O" &&
|
||||
["V", "L", "P", "I"].indexOf(functionid.charAt(0)) > -1
|
||||
) {
|
||||
metadata.frame = true;
|
||||
metadata.dimension = mapping.dimension[1];
|
||||
}
|
||||
|
||||
return metadata;
|
||||
}
|
||||
27
node_modules/milsymbol/src/lettersidc/sidc/2525b-ch2.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import std2525bicons from "../../iconparts/2525b.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [std2525bicons],
|
||||
icons: function std2525b(sId, bbox, icn, _STD2525) {
|
||||
// These symbols are in 2525B but not in 2525C and because of this they need to be added
|
||||
// The icons are in iconparts/2525b.js
|
||||
|
||||
sId["S-S-S-----"] = icn["2525B.STN"]; //WAR.SSUF.CBTT.STN
|
||||
sId["S-S-SP----"] = icn["2525B.STN.PKT"]; //WAR.SSUF.CBTT.STN.PKT
|
||||
sId["S-S-SA----"] = icn["2525B.STN.ASWSHP"]; //WAR.SSUF.CBTT.STN.ASWSHP
|
||||
sId["S-S-NN----"] = icn["2525B.NCBTT.STN"]; //WAR.SSUF.NCBTT.STN
|
||||
sId["S-S-NNR---"] = icn["2525B.STN.RSC"]; //WAR.SSUF.NCBTT.STN.RSC
|
||||
|
||||
sId["S-U-SS----"] = icn["2525B.SUB.STN"]; //WAR.SBSUF.SUB.STN
|
||||
sId["S-U-SSA---"] = icn["2525B.ASWSUB"]; //WAR.SBSUF.SUB.STN.ASWSUB
|
||||
|
||||
// Tactical points
|
||||
sId["G-O-SBWD--"] = icn["TP.WRECK, DANGEROUS"]; //TACGRP.OTH.SSUBSR.BTMRTN.WRKD
|
||||
bbox["G-O-SBXD--"] = { x1: 35, x2: 165, y1: 70, y2: 130 };
|
||||
}
|
||||
};
|
||||
298
node_modules/milsymbol/src/lettersidc/sidc/air.js
generated
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/air.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons],
|
||||
icons: function air(sId, bbox, icn, _STD2525) {
|
||||
// AIR ===========================================================================
|
||||
sId["S-A-------"] = [];
|
||||
sId["S-A-M-----"] = [icn["AR.I.MILITARY"]];
|
||||
sId["S-A-MF----"] = [icn["AR.I.FF.MILITARY FIXED WING"]];
|
||||
sId["S-A-MFB---"] = [icn["AR.I.BOMBER"]];
|
||||
sId["S-A-MFF---"] = [icn["AR.I.FIGHTER"]];
|
||||
sId["S-A-MFFI--"] = [icn["AR.I.FIGHTER INTERCEPTOR"]];
|
||||
sId["S-A-MFT---"] = [icn["AR.I.TRAINER"]];
|
||||
sId["S-A-MFA---"] = [icn["AR.I.ATTACK/STRIKE"]];
|
||||
sId["S-A-MFL---"] = [icn["AR.I.VSTOL"]];
|
||||
sId["S-A-MFK---"] = [icn["AR.I.TANKER"]];
|
||||
sId["S-A-MFKB--"] = [icn["AR.I.TANKER"], icn["AIR.M1.BOOM-ONLY"]];
|
||||
sId["S-A-MFKD--"] = [icn["AR.I.TANKER"], icn["AIR.M1.DROUGE-ONLY"]];
|
||||
sId["S-A-MFC---"] = [icn["AR.I.CARGO"]];
|
||||
sId["S-A-MFCL--"] = [icn["AR.I.CARGO"], icn["AIR.M2.LIGHT"]];
|
||||
sId["S-A-MFCM--"] = [icn["AR.I.CARGO"], icn["AIR.M2.MEDIUM"]];
|
||||
|
||||
sId["S-A-MFCH--"] = [icn["AR.I.CARGO"], icn["AIR.M2.HEAVY"]];
|
||||
sId["S-A-MFJ---"] = [icn["AR.I.JAMMER / ELECTRONIC COUNTER-MEASURES"]];
|
||||
sId["S-A-MFO---"] = [icn["AR.I.MEDICAL EVACUATION"]];
|
||||
sId["S-A-MFR---"] = [icn["AR.I.RECONNAISSANCE"]];
|
||||
sId["S-A-MFRW--"] = [icn["AR.I.AIRBORNE EARLY WARNING"]];
|
||||
sId["S-A-MFRZ--"] = [icn["AR.I.ELECTRONIC SUPPORT MEASURES"]];
|
||||
sId["S-A-MFRX--"] = _STD2525
|
||||
? [icn["AR.I.2525 PHOTOGRAPHIC"]]
|
||||
: [icn["AR.I.RECONNAISSANCE"], icn["AIR.M2.PHOTOGRAPHIC"]];
|
||||
sId["S-A-MFP---"] = [icn["AR.I.PATROL"]];
|
||||
sId["S-A-MFPN--"] = [icn["AR.I.ANTISURFACE WARFARE"]];
|
||||
sId["S-A-MFPM--"] = [icn["AR.I.MINE COUNTERMEASURES"]];
|
||||
sId["S-A-MFU---"] = [icn["AR.I.UTILITY"]];
|
||||
sId["S-A-MFUL--"] = [icn["AR.I.UTILITY"], icn["AIR.M2.LIGHT"]];
|
||||
sId["S-A-MFUM--"] = [icn["AR.I.UTILITY"], icn["AIR.M2.MEDIUM"]];
|
||||
sId["S-A-MFUH--"] = [icn["AR.I.UTILITY"], icn["AIR.M2.HEAVY"]];
|
||||
sId["S-A-MFY---"] = [icn["AR.I.COMMUNICATIONS"]];
|
||||
sId["S-A-MFH---"] = [icn["AR.I.PERSONNEL RECOVERY"]];
|
||||
sId["S-A-MFD---"] = [icn["AR.I.AIRBORNE COMMAND POST"]];
|
||||
sId["S-A-MFQ---"] = [icn["AR.I.UNMANNED AERIAL VEHICLE"]];
|
||||
sId["S-A-MFQA--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.ATTACK"]
|
||||
];
|
||||
sId["S-A-MFQB--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.BOMBER"]
|
||||
];
|
||||
sId["S-A-MFQC--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.CARGO"]
|
||||
];
|
||||
sId["S-A-MFQD--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.AIRBORNE COMMAND POST"]
|
||||
];
|
||||
sId["S-A-MFQF--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.FIGHTER"]
|
||||
];
|
||||
sId["S-A-MFQH--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.COMBAT SEARCH AND RESCUE"]
|
||||
];
|
||||
sId["S-A-MFQJ--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.JAMMER / ELECTRONIC COUNTER-MEASURES"]
|
||||
];
|
||||
sId["S-A-MFQK--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.TANKER"]
|
||||
];
|
||||
sId["S-A-MFQL--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.VSTOL"]
|
||||
];
|
||||
sId["S-A-MFQM--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-A-MFQI--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.MINE COUNTERMEASURES"]
|
||||
];
|
||||
sId["S-A-MFQN--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.ANTISURFACE WARFARE"]
|
||||
];
|
||||
sId["S-A-MFQP--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.PATROL"]
|
||||
];
|
||||
sId["S-A-MFQR--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.RECONNAISSANCE"]
|
||||
];
|
||||
sId["S-A-MFQRW-"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.AIRBORNE EARLY WARNING"]
|
||||
];
|
||||
sId["S-A-MFQRZ-"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.ELECTRONIC SURVEILLANCE MEASURES"]
|
||||
];
|
||||
sId["S-A-MFQRX-"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.PHOTOGRAPHIC"]
|
||||
];
|
||||
sId["S-A-MFQS--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.ANTISUBMARINE WARFARE"]
|
||||
];
|
||||
sId["S-A-MFQT--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.TRAINER"]
|
||||
];
|
||||
sId["S-A-MFQU--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.UTILITY"]
|
||||
];
|
||||
sId["S-A-MFQY--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.COMMUNICATIONS"]
|
||||
];
|
||||
sId["S-A-MFQO--"] = [
|
||||
icn["AR.I.UNMANNED AERIAL VEHICLE"],
|
||||
icn["AIR.M1.MEDEVAC"]
|
||||
];
|
||||
sId["S-A-MFS---"] = [icn["AR.I.ANTISUBMARINE WARFARE"]];
|
||||
sId["S-A-MFM---"] = [icn["AR.I.SPECIAL OPERATIONS FORCES"]];
|
||||
sId["S-A-MH----"] = [icn["AR.I.MILITARY ROTARY WING"]];
|
||||
sId["S-A-MHA---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.ATTACK"]
|
||||
];
|
||||
sId["S-A-MHS---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.ANTISUBMARINE WARFARE"]
|
||||
];
|
||||
sId["S-A-MHU---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.UTILITY"]
|
||||
];
|
||||
sId["S-A-MHUL--"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.UTILITY"],
|
||||
icn["AIR.M2.LIGHT"]
|
||||
];
|
||||
sId["S-A-MHUM--"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.UTILITY"],
|
||||
icn["AIR.M2.MEDIUM"]
|
||||
];
|
||||
sId["S-A-MHUH--"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.UTILITY"],
|
||||
icn["AIR.M2.HEAVY"]
|
||||
];
|
||||
sId["S-A-MHI---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.MINE COUNTERMEASURES"]
|
||||
];
|
||||
sId["S-A-MHH---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.COMBAT SEARCH AND RESCUE"]
|
||||
];
|
||||
sId["S-A-MHR---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.RECONNAISSANCE"]
|
||||
];
|
||||
sId["S-A-MHQ---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.UNMANNED AERIAL VEHICLE"]
|
||||
];
|
||||
sId["S-A-MHC---"] = [icn["AR.I.MILITARY ROTARY WING"], icn["AIR.M1.CARGO"]];
|
||||
sId["S-A-MHCL--"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.CARGO"],
|
||||
icn["AIR.M2.LIGHT"]
|
||||
];
|
||||
sId["S-A-MHCM--"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.CARGO"],
|
||||
icn["AIR.M2.MEDIUM"]
|
||||
];
|
||||
sId["S-A-MHCH--"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.CARGO"],
|
||||
icn["AIR.M2.HEAVY"]
|
||||
];
|
||||
sId["S-A-MHT---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.TRAINER"]
|
||||
];
|
||||
sId["S-A-MHO---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.MEDEVAC"]
|
||||
];
|
||||
sId["S-A-MHM---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-A-MHD---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.AIRBORNE COMMAND POST"]
|
||||
];
|
||||
sId["S-A-MHK---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.TANKER"]
|
||||
];
|
||||
sId["S-A-MHJ---"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.JAMMER / ELECTRONIC COUNTER-MEASURES"]
|
||||
];
|
||||
sId["S-A-ML----"] = [icn["AR.I.FF.MILITARY BALLOON"]];
|
||||
sId["S-A-MV----"] = [icn["AR.I.VIP"]];
|
||||
sId["S-A-ME----"] = [icn["AR.I.ESCORT"]];
|
||||
sId["S-A-W-----"] = [icn["AIR.MISSILE.ICON"]];
|
||||
sId["S-A-WM----"] = [icn["AIR.MISSILE.ICON"]];
|
||||
sId["S-A-WMS---"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.SURFACE"],
|
||||
icn["AIR.MISSILE.M2.LAUNCHED"]
|
||||
];
|
||||
sId["S-A-WMSS--"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.SURFACE"],
|
||||
icn["AIR.MISSILE.M2.SURFACE"]
|
||||
];
|
||||
sId["S-A-WMSA--"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.SURFACE"],
|
||||
icn["AIR.MISSILE.M2.AIR"]
|
||||
];
|
||||
sId["S-A-WMSU--"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.SURFACE"],
|
||||
icn["AIR.MISSILE.M2.SUBSURFACE"]
|
||||
];
|
||||
sId["S-A-WMSB--"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.IC.ANTIBALLISTIC MISSILE"]
|
||||
];
|
||||
sId["S-A-WMA---"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.AIR"],
|
||||
icn["AIR.MISSILE.M2.LAUNCHED"]
|
||||
];
|
||||
sId["S-A-WMAS--"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.AIR"],
|
||||
icn["AIR.MISSILE.M2.SURFACE"]
|
||||
];
|
||||
sId["S-A-WMAA--"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.AIR"],
|
||||
icn["AIR.MISSILE.M2.AIR"]
|
||||
];
|
||||
sId["S-A-WMAP--"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.AIR"],
|
||||
icn["AIR.MISSILE.M2.SPACE"]
|
||||
];
|
||||
sId["S-A-WMU---"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.SUBSURFACE"],
|
||||
icn["AIR.MISSILE.M2.SURFACE"]
|
||||
];
|
||||
sId["S-A-WML---"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.LAND"],
|
||||
icn["AIR.MISSILE.M2.AIR"]
|
||||
];
|
||||
sId["S-A-WMCM--"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.CRUISE"],
|
||||
icn["AIR.MISSILE.M2.MISSILE"]
|
||||
];
|
||||
sId["S-A-WMB---"] = [
|
||||
icn["AIR.MISSILE.ICON"],
|
||||
icn["AIR.MISSILE.M1.BALLISTIC"],
|
||||
icn["AIR.MISSILE.M2.MISSILE"]
|
||||
];
|
||||
sId["S-A-WB----"] = [icn["AIR.MISSILE.IC.BOMB"]];
|
||||
sId["S-A-WD----"] = [icn["AR.I.AIR DECOY"]];
|
||||
sId["S-A-C-----"] = [icn["AR.I.CIVILIAN"]];
|
||||
sId["S-A-CF----"] = [icn["AR.I.FF.CIVILIAN FIXED WING"]];
|
||||
sId["S-A-CH----"] = [icn["AR.I.FF.CIVILIAN ROTARY WING"]];
|
||||
sId["S-A-CL----"] = [icn["AR.I.FF.CIVILIAN BALLOON"]];
|
||||
}
|
||||
};
|
||||
354
node_modules/milsymbol/src/lettersidc/sidc/emergencymanagementsymbols.js
generated
vendored
Normal file
@@ -0,0 +1,354 @@
|
||||
import { ms } from "../../ms.js";
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/ground.js";
|
||||
import tacticalpoints from "../../iconparts/tactical-points.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons, tacticalpoints],
|
||||
icons: function emergencymanagementsymbols(sId, bbox, icn, _STD2525) {
|
||||
//Adds support for 2525C Emergency Management Symbols
|
||||
sId["E-I-A-----"] = [icn["AC.IC.CRIMINAL.CIVIL DISTURBANCE"]];
|
||||
sId["E-I-AC----"] = [icn["ST.IC.GROUP"], icn["AC.M1.RIOT"]];
|
||||
sId["E-I-B-----"] = [icn["AC.IC.CRIMINAL.ACTIVITY.INCIDENT"]];
|
||||
sId["E-I-BA----"] = [icn["ST.IC.BOMB"], icn["AC.M1.THREAT"]];
|
||||
sId["E-I-BC----"] = [
|
||||
icn["ST.IC.EXPLOSION"],
|
||||
ms._scale(0.6, icn["ST.IC.BOMB"])
|
||||
];
|
||||
sId["E-I-BD----"] = [icn["ST.IC.GROUP"], icn["ST.M1.LOOT"]];
|
||||
sId["E-I-BF----"] = [icn["AC.IC.SHOOTING"]];
|
||||
sId["E-I-C-----"] = [icn["AC.IC.FIRE EVENT"]];
|
||||
sId["E-I-CA----"] = [icn["AC.IC.HOT SPOT"]];
|
||||
sId["E-I-CB----"] = [icn["AC.IC.NON-REsIdENTIAL FIRE"]];
|
||||
sId["E-I-CC----"] = [icn["AC.IC.FIRE ORIGIN"]];
|
||||
sId["E-I-CD----"] = [icn["AC.IC.REsIdENTIAL FIRE"]];
|
||||
sId["E-I-CE----"] = [icn["AC.IC.SCHOOL FIRE"]];
|
||||
sId["E-I-CF----"] = [icn["AC.IC.SMOKE"]];
|
||||
sId["E-I-CG----"] = [icn["AC.IC.SPECIAL NEEDS FIRE"]];
|
||||
sId["E-I-CH----"] = [icn["AC.IC.WILD FIRE"]];
|
||||
sId["E-I-D-----"] = [icn["AC.IC.HAZARDOUS MATERIALS INCIDENT"]];
|
||||
sId["E-I-DA----"] = [icn["AC.IC.CHEMICAL AGENT"]];
|
||||
sId["E-I-DB----"] = [icn["AC.IC.CORROSIVE MATERIAL"]];
|
||||
sId["E-I-DC----"] = [icn["AC.IC.HAZARDOUS WHEN WET"]];
|
||||
sId["E-I-DD----"] = [icn["AC.IC.EXPLOSIVE MATERIAL"]];
|
||||
sId["E-I-DE----"] = [icn["AC.IC.FLAMMABLE GAS"]];
|
||||
sId["E-I-DF----"] = [icn["AC.IC.FLAMMABLE LIQUID"]];
|
||||
sId["E-I-DG----"] = [icn["AC.IC.FLAMMABLE SOLID"]];
|
||||
sId["E-I-DH----"] = [icn["AC.IC.NON-FLAMMABLE GAS"]];
|
||||
sId["E-I-DI----"] = [icn["AC.IC.ORGANIC PEROXIDE"]];
|
||||
sId["E-I-DJ----"] = [icn["AC.IC.OXIDIZER"]];
|
||||
sId["E-I-DK----"] = [icn["AC.IC.RADIOACTIVE MATERIAL"]];
|
||||
sId["E-I-DL----"] = [icn["AC.IC.SPONTANEOUSLY COMBUSTIBLE MATERIAL"]];
|
||||
sId["E-I-DM----"] = [icn["AC.IC.TOXIC GAS"]];
|
||||
sId["E-I-DN----"] = [icn["AC.IC.TOXIC INFECTIOUS MATERIAL"]];
|
||||
sId["E-I-DO----"] = [icn["AC.IC.UNEXPLODED ORDNANCE"]];
|
||||
sId["E-I-E-----"] = [
|
||||
icn["ST.M1.INCIDENT"],
|
||||
icn["ST.IC.HIJACKING (AIRPLANE)"]
|
||||
];
|
||||
sId["E-I-EA----"] = [
|
||||
icn["ST.M1.ACCIDENT"],
|
||||
icn["ST.IC.HIJACKING (AIRPLANE)"]
|
||||
];
|
||||
sId["E-I-F-----"] = [icn["ST.M1.INCIDENT"], icn["ST.IC.HIJACKING (BOAT)"]];
|
||||
sId["E-I-FA----"] = [icn["ST.M1.ACCIDENT"], icn["ST.IC.HIJACKING (BOAT)"]];
|
||||
sId["E-I-G-----"] = [icn["ST.M1.INCIDENT"], icn["GR.EQ.TRAIN LOCOMOTIVE"]];
|
||||
sId["E-I-GA----"] = [icn["ST.M1.ACCIDENT"], icn["GR.EQ.TRAIN LOCOMOTIVE"]];
|
||||
sId["E-I-GB----"] = [
|
||||
icn["GR.EQ.TRAIN LOCOMOTIVE"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
];
|
||||
sId["E-I-H-----"] = [
|
||||
icn["ST.M1.INCIDENT"],
|
||||
icn["ST.IC.KNOWN INSURGENT VEHICLE"]
|
||||
];
|
||||
sId["E-I-HA----"] = [
|
||||
icn["ST.M1.ACCIDENT"],
|
||||
icn["ST.IC.KNOWN INSURGENT VEHICLE"]
|
||||
];
|
||||
sId["E-N-A-----"] = []; // N/A
|
||||
sId["E-N-AA----"] = [icn["AC.IC.AFTERSHOCK"]];
|
||||
sId["E-N-AB----"] = [icn["AC.IC.AVALANCHE"]];
|
||||
sId["E-N-AC----"] = [icn["AC.IC.EARTHQUAKE EPICENTER"]];
|
||||
sId["E-N-AD----"] = [icn["AC.IC.LANDSLIDE"]];
|
||||
sId["E-N-AE----"] = [icn["AC.IC.SUBSIDENCE"]];
|
||||
sId["W-S-WSVE--"] = [icn["AC.IC.VOLCANIC ERUPTION"]];
|
||||
sId["E-N-AG----"] = [icn["AC.IC.VOLCANIC THREAT"]];
|
||||
sId["W-S-WSD-LI"] = [icn["ATMOSPHERIC.IC.DRIZZLE.INTERMITTENT LIGHT"]];
|
||||
sId["E-N-B-----"] = []; // N/A
|
||||
sId["E-N-BB----"] = [icn["AC.IC.DROUGHT"]];
|
||||
sId["E-N-BC----"] = [icn["AC.IC.FLOOD"]];
|
||||
sId["W-S-WSFGSO"] = [icn["ATMOSPHERIC.IC.FOG.SKY OBSCURED"]];
|
||||
sId["W-S-WSGRL-"] = [
|
||||
icn["ATMOSPHERIC.IC.HAIL.LIGHT NOT ASSOCIATED WITH THUNDER"]
|
||||
];
|
||||
sId["E-N-BF----"] = [icn["AC.IC.INVERSION"]];
|
||||
sId["W-S-WSR-LI"] = [icn["ATMOSPHERIC.IC.RAIN.INTERMITTENT LIGHT"]];
|
||||
sId["W-S-WSDSLM"] = [icn["ATMOSPHERIC.IC.DUST OR SAND.LIGHT TO MODERATE"]];
|
||||
sId["W-S-WSS-LI"] = [icn["ATMOSPHERIC.IC.SNOW.INTERMITTENT LIGHT"]];
|
||||
sId["W-S-WSTMH-"] = [
|
||||
icn["ATMOSPHERIC.IC.STORMS.THUNDERSTORM LIGHT TO MODERATE - WITH HAIL"]
|
||||
];
|
||||
sId["W-S-WST-FC"] = [
|
||||
icn["ATMOSPHERIC.IC.STORMS.FUNNEL CLOUD (TORNADO/WATERSPOUT)"]
|
||||
];
|
||||
sId["W-S-WSTSS-"] = [
|
||||
icn["ATMOSPHERIC.IC.TROPICAL STORM SYSTEMS.TROPICAL STORM"]
|
||||
];
|
||||
sId["E-N-BM----"] = [icn["AC.IC.TSUNAMI"]];
|
||||
sId["E-N-C-----"] = []; // N/A
|
||||
sId["E-N-CA----"] = [icn["AC.IC.BIRD"]];
|
||||
sId["E-N-CB----"] = [icn["AC.IC.INSECT"]];
|
||||
sId["E-N-CC----"] = [icn["AC.IC.MICROBIAL"]];
|
||||
sId["E-N-CD----"] = [icn["AC.IC.REPTILE"]];
|
||||
sId["E-N-CE----"] = [icn["AC.IC.RODENT"]];
|
||||
sId["E-O-A-----"] = sId["E-O-AA----"] = sId["E-O-AB----"] = sId[
|
||||
"E-O-AC----"
|
||||
] = sId["E-O-AD----"] = [icn["GR.IC.EMERGENCY MEDICAL OPERATION"]];
|
||||
sId["E-O-AE----"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"],
|
||||
icn["GR.M1.MEDEVAC"]
|
||||
];
|
||||
sId["E-O-AF----"] = [
|
||||
ms._translate(0, 10, ms._scale(0.8, icn["GR.I.FF.CIVILIAN ROTARY WING"])),
|
||||
icn["GR.M1.MEDEVAC"]
|
||||
];
|
||||
sId["E-O-AG----"] = [icn["AC.IC.HEALTH DEPARTMENT FACILITY"]];
|
||||
sId["E-O-AJ----"] = [icn["AC.IC.MEDICAL FACILITIES OUTPATIENT"]];
|
||||
sId["E-O-AK----"] = [icn["AC.IC.OPERATION/EMERGENCY MEDICAL OPERATION"]];
|
||||
sId["E-O-AL----"] = [icn["AC.IC.PHARMACY"]];
|
||||
sId["E-O-AM----"] = [icn["AC.IC.TRIAGE"]];
|
||||
sId["E-O-B-----"] = sId["E-O-BA----"] = sId["E-O-BB----"] = sId[
|
||||
"E-O-BC----"
|
||||
] = [icn["GR.IC.FF.EMERGENCY OPERATION"]];
|
||||
sId["E-O-BD----"] = [
|
||||
ms._scale(0.7, icn["GR.IC.FF.EMERGENCY OPERATION"]),
|
||||
icn["AC.M1.EMERGENCY COLLECTION EVACUATION POINT"]
|
||||
];
|
||||
sId["E-O-BE----"] = [
|
||||
ms._scale(0.7, icn["GR.IC.FF.EMERGENCY OPERATION"]),
|
||||
icn["AC.M1.EMERGENCY INCIDENT COMMAND CENTER"]
|
||||
];
|
||||
sId["E-O-BF----"] = [
|
||||
ms._scale(0.7, icn["GR.IC.FF.EMERGENCY OPERATION"]),
|
||||
icn["AC.M1.EMERGENCY OPERATIONS CENTER"]
|
||||
];
|
||||
sId["E-O-BG----"] = [icn["AC.IC.EMERGENCY PUBLIC INFORMATION CENTER"]];
|
||||
sId["E-O-BH----"] = [
|
||||
ms._scale(0.7, icn["GR.IC.FF.EMERGENCY OPERATION"]),
|
||||
icn["AC.M1.EMERGENCY SHELTER"]
|
||||
];
|
||||
sId["E-O-BI----"] = [
|
||||
ms._scale(0.7, icn["GR.IC.FF.EMERGENCY OPERATION"]),
|
||||
icn["AC.M1.EMERGENCY STAGING AREA"]
|
||||
];
|
||||
sId["E-O-BJ----"] = [icn["GR.IC.FF.EMERGENCY OPERATION"]];
|
||||
sId["E-O-BK----"] = sId["S-G-USSW--"];
|
||||
sId["E-O-BL----"] = [
|
||||
icn["ST.IC.FOOD DISTRIBUTION"],
|
||||
icn["AC.M1.EMERGENCY"]
|
||||
];
|
||||
sId["E-O-C-----"] = sId["E-O-CA----"] = sId["E-O-CB----"] = sId[
|
||||
"E-O-CE----"
|
||||
] = [icn["GR.IC.FIRE PROTECTION"]];
|
||||
sId["E-O-CC----"] = [icn["AC.IC.FIRE HYDRANT"]];
|
||||
sId["E-O-CD----"] = [icn["AC.IC.OTHER WATER SUPPLY LOCATION"]];
|
||||
sId["E-O-D-----"] = sId["E-O-DA----"] = sId["E-O-DB----"] = sId[
|
||||
"E-O-DC----"
|
||||
] = [icn["GR.IC.FF.LAW ENFORCEMENT"]];
|
||||
sId["E-O-DD----"] = sId["E-O-DDA---"] = sId["E-O-DDB---"] = sId[
|
||||
"E-O-DDC---"
|
||||
] = [
|
||||
icn[
|
||||
"GR.IC.BUREAU OF ALCOHOL, TOBACCO, FIREARMS AND EXPLOSIVES (ATF) (DEPARTMENT OF JUSTICE)"
|
||||
]
|
||||
];
|
||||
sId["E-O-DE----"] = sId["E-O-DEA---"] = sId["E-O-DEB---"] = sId[
|
||||
"E-O-DEC---"
|
||||
] = [icn["GR.IC.FF.BORDER PATROL"]];
|
||||
sId["E-O-DF----"] = sId["E-O-DFA---"] = sId["E-O-DFB---"] = sId[
|
||||
"E-O-DFC---"
|
||||
] = [icn["GR.IC.FF.CUSTOMS SERVICE"]];
|
||||
sId["E-O-DG----"] = sId["E-O-DGA---"] = sId["E-O-DGB---"] = sId[
|
||||
"E-O-DGC---"
|
||||
] = [icn["GR.IC.DRUG ENFORCEMENT AGENCY (DEA)"]];
|
||||
sId["E-O-DH----"] = sId["E-O-DHA---"] = sId["E-O-DHB---"] = sId[
|
||||
"E-O-DHC---"
|
||||
] = [icn["GR.IC.FF.DEPARTMENT OF JUSTICE (DOJ)"]];
|
||||
sId["E-O-DI----"] = sId["E-O-DIA---"] = sId["E-O-DIB---"] = sId[
|
||||
"E-O-DIC---"
|
||||
] = [icn["GR.IC.FEDERAL BUREAU OF INVESTIGATION (FBI)"]];
|
||||
sId["E-O-DJ----"] = sId["E-O-DJB---"] = sId["E-O-DJC---"] = [
|
||||
icn["GR.IC.LAW ENFORCEMENT"]
|
||||
];
|
||||
sId["E-O-DK----"] = [icn["GR.IC.FF.PRISON"]];
|
||||
sId["E-O-DL----"] = sId["E-O-DLA---"] = sId["E-O-DLB---"] = sId[
|
||||
"E-O-DLC---"
|
||||
] = [icn["GR.IC.UNITED STATES SECRET SERVICE(TREAS) (USSS)"]];
|
||||
sId["E-O-DM----"] = sId["E-O-DMA---"] = sId["E-O-DMB---"] = sId[
|
||||
"E-O-DMC---"
|
||||
] = [icn["GR.IC.TRANSPORTATION SECURITY AGENCY (TSA)"]];
|
||||
sId["E-O-DN----"] = sId["E-O-DNA---"] = sId["E-O-DNC---"] = [
|
||||
icn["GR.IC.LAW ENFORCEMENT VESSEL"]
|
||||
];
|
||||
sId["E-O-DO----"] = sId["E-O-DOA---"] = sId["E-O-DOB---"] = sId[
|
||||
"E-O-DOC---"
|
||||
] = [icn["GR.IC.FF.US MARSHALS SERVICE"]];
|
||||
sId["E-O-EA----"] = [
|
||||
ms._scale(0.6, icn["GR.EQ.SENSOR"]),
|
||||
icn["GR.M1.BIOLOGICAL"]
|
||||
];
|
||||
sId["E-O-EB----"] = [
|
||||
ms._scale(0.6, icn["GR.EQ.SENSOR"]),
|
||||
icn["GR.M1.CHEMICAL"]
|
||||
];
|
||||
sId["E-O-EC----"] = [
|
||||
ms._scale(0.6, icn["GR.EQ.SENSOR"]),
|
||||
icn["GR.M1.INTRUSION"]
|
||||
];
|
||||
sId["E-O-ED----"] = [
|
||||
ms._scale(0.6, icn["GR.EQ.SENSOR"]),
|
||||
icn["GR.M1.NUCLEAR"]
|
||||
];
|
||||
sId["E-O-EE----"] = [
|
||||
ms._scale(0.6, icn["GR.EQ.SENSOR"]),
|
||||
icn["GR.M1.RADIOLOGICAL"]
|
||||
];
|
||||
sId["E-F-A-----"] = [icn["GR.IN.IC.AGRICULTURE AND FOOD INFRASTRUCTURE"]];
|
||||
sId["E-F-AA----"] = [icn["GR.IN.IC.AGRICULTURAL LABORATORY"]];
|
||||
sId["E-F-AB----"] = [icn["GR.IN.IC.ANIMAL FEEDLOT"]];
|
||||
sId["E-F-AC----"] = [
|
||||
icn["ST.IC.FOOD DISTRIBUTION"],
|
||||
icn["AC.M1.COMMERCIAL"]
|
||||
];
|
||||
sId["E-F-AD----"] = [icn["GR.IN.IC.FARM/RANCH"]];
|
||||
sId["E-F-AE----"] = [
|
||||
icn["ST.IC.FOOD DISTRIBUTION"],
|
||||
icn["AC.M1.PRODUCTION"]
|
||||
];
|
||||
sId["E-F-AF----"] = [icn["ST.IC.FOOD DISTRIBUTION"], icn["AC.M1.RETAIL"]];
|
||||
sId["E-F-AG----"] = [icn["GR.IN.IC.GRAIN STORAGE"]];
|
||||
sId["E-F-B-----"] = [
|
||||
icn["AC.IC.BANKING FINANCE AND INSURANCE INFRASTRUCTURE"]
|
||||
];
|
||||
sId["E-F-BA----"] = [icn["GR.IN.IC.ATM"]];
|
||||
sId["E-F-BB----"] = [icn["GR.IN.IC.BANK"]];
|
||||
sId["E-F-BC----"] = [icn["GR.IN.IC.BULLION STORAGE"]];
|
||||
sId["E-F-BD----"] = [icn["GR.IN.IC.FEDERAL RESERVE BANK"]];
|
||||
sId["E-F-BE----"] = [icn["GR.IN.IC.FINANCIAL EXCHANGE"]];
|
||||
sId["E-F-BF----"] = [icn["GR.IN.IC.FINANCIAL SERVICES, OTHER"]];
|
||||
sId["E-F-C-----"] = [icn["GR.IN.IC.COMMERCIAL INFRASTRUCTURE"]];
|
||||
sId["E-F-CA----"] = [icn["GR.IN.IC.CHEMICAL PLANT"]];
|
||||
sId["E-F-CB----"] = [icn["GR.IN.IC.FIREARMS MANUFACTURER"]];
|
||||
sId["E-F-CC----"] = [icn["GR.IN.IC.FIREARMS RETAILER"]];
|
||||
sId["E-F-CD----"] = [icn["GR.IN.IC.HAZARDOUS MATERIAL PRODUCTION"]];
|
||||
sId["E-F-CE----"] = [icn["GR.IN.IC.HAZARDOUS MATERIAL STORAGE"]];
|
||||
sId["E-F-CF----"] = [icn["GR.IN.IC.INDUSTRIAL SITE"]];
|
||||
sId["E-F-CG----"] = [icn["GR.IN.IC.LANDFILL"]];
|
||||
sId["E-F-CH----"] = [icn["GR.IN.IC.PHARMACEUTICAL MANUFACTURER"]];
|
||||
sId["E-F-CI----"] = [icn["GR.IN.IC.CONTAMINATED HAZARDOUS WASTE SITE"]];
|
||||
sId["E-F-CJ----"] = [icn["GR.IN.IC.TOXIC RELEASE INVENTORY"]];
|
||||
sId["E-F-D-----"] = [icn["GR.IN.IC.EDUCATIONAL FACILITIES INFRASTRUCTURE"]];
|
||||
sId["E-F-DA----"] = [icn["GR.IN.IC.COLLEGE/UNIVERSITY"]];
|
||||
sId["E-F-DB----"] = [icn["GR.IN.IC.SCHOOL"]];
|
||||
sId["E-F-EA----"] = [
|
||||
ms._translate(0, 15, ms._scale(0.75, icn["GR.IN.IC.ELECTRIC POWER"])),
|
||||
icn["AC.M1.GENERATION STATION"]
|
||||
];
|
||||
sId["E-F-EB----"] = [icn["GR.IN.IC.NATURAL GAS FACILITY"]];
|
||||
sId["E-F-EE----"] = [icn["GR.IN.IC.PROPANE FACILITY"]];
|
||||
sId["E-F-F-----"] = [icn["GR.IN.IC.GOVERNMENT SITE INFRASTRUCTURE"]];
|
||||
sId["E-F-G-----"] = [icn["GR.IN.IC.MILITARY INFRASTRUCTURE"]];
|
||||
sId["E-F-GA----"] = [icn["GR.IN.IC.BASE"], icn["AC.M1.MILITARY ARMORY"]];
|
||||
sId["E-F-H-----"] = [icn["GR.IN.IC.POSTAL SERVICE INFRASTRUCTURE"]];
|
||||
sId["E-F-HA----"] = [icn["GR.IN.IC.POSTAL DISTRIBUTION CENTER"]];
|
||||
sId["E-F-HB----"] = [icn["GR.IN.IC.POST OFFICE"]];
|
||||
sId["E-F-I-----"] = [icn["GR.IN.IC.PUBLIC VENUES INFRASTRUCTURE"]];
|
||||
sId["E-F-IA----"] = [icn["GR.IN.IC.ENCLOSED FACITLITY (PUBLIC VENUE)"]];
|
||||
sId["E-F-IB----"] = [icn["GR.IN.IC.OPEN FACILITY (OPEN VENUE)"]];
|
||||
sId["E-F-IC----"] = [icn["GR.IN.IC.RECREATIONAL AREA"]];
|
||||
sId["E-F-ID----"] = [icn["GR.IN.IC.RELIGIOUS INSTITUTION"]];
|
||||
sId["E-F-J-----"] = [icn["GR.IN.IC.SPECIAL NEEDS INFRASTRUCTURE"]];
|
||||
sId["E-F-JA----"] = [icn["GR.IN.IC.ADULT DAY CARE"]];
|
||||
sId["E-F-JB----"] = [icn["GR.IN.IC.CHILD DAY CARE"]];
|
||||
sId["E-F-JC----"] = [icn["GR.IN.IC.ELDER CARE"]];
|
||||
sId["E-F-K-----"] = [icn["GR.IN.IC.TELECOMMUNICATIONS INFRASTRUCTURE"]];
|
||||
sId["E-F-KB----"] = [icn["GR.IN.IC.TELECOMMUNICATIONS TOWER"]];
|
||||
sId["E-F-LA----"] = [icn["GR.IN.IC.AIR TRAFFIC CONTROL FACILITY"]];
|
||||
sId["G-M-BCB---"] = [icn["GR.IN.IC.BRIDGE"]];
|
||||
bbox["G-M-BCB---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sId["E-F-LD----"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MULTIPLE PASSENGER VEHICLE"]
|
||||
];
|
||||
sId["E-F-LE----"] = [icn["GR.IC.FERRY"]];
|
||||
sId["E-F-LF----"] = [icn["GR.IN.IC.HELICOPTER LANDING SITE"]];
|
||||
sId["W-S-ML----"] = [icn["GR.IN.IC.TRANSPORTATION INFRASTRUCTURE LOCK"]];
|
||||
sId["E-F-LH----"] = [icn["GR.IC.MAINTENANCE"]];
|
||||
sId["E-F-LJ----"] = [icn["GR.IC.RAILHEAD"]];
|
||||
sId["E-F-LK----"] = [icn["GR.IN.IC.REST STOP"]];
|
||||
sId["W-S-HPBA--"] = [
|
||||
icn["GR.IN.IC.TRANSPORTATION INFRASTRUCTURE SHIP ANCHORAGE"]
|
||||
];
|
||||
sId["E-F-LM----"] = [icn["GR.IN.IC.TOLL FACILITY"]];
|
||||
/*sId["G-S-PO----"] = [
|
||||
icn["GR.IN.IC.TRANSPORTATION INFRASTRUCTURE.TRAFFIC CONTROL POINT"]
|
||||
];*/
|
||||
sId["G-S-PO----"] = icn["TP.TRAFFIC CONTROL POST"]; //TACGRP.CSS.PNT.TCP
|
||||
bbox["G-S-PO----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sId["E-F-LO----"] = [icn["GR.IN.IC.TRAFFIC INSPECTION FACILITY"]];
|
||||
sId["E-F-LP----"] = [icn["GR.IN.IC.TUNNEL"]];
|
||||
sId["E-F-MA----"] = [icn["GR.IN.IC.CONTROL VALVE"]];
|
||||
sId["E-F-MB----"] = [icn["GR.IN.IC.DAM"]];
|
||||
sId["E-F-MC----"] = [icn["GR.IN.IC.DISCHARGE OUTFALL"]];
|
||||
sId["E-F-MD----"] = [icn["GR.IN.IC.GROUND WATER WELL"]];
|
||||
sId["E-F-ME----"] = [icn["GR.IN.IC.PUMPING STATION"]];
|
||||
sId["E-F-MF----"] = [icn["GR.IN.IC.RESERVOIR"]];
|
||||
sId["E-F-MG----"] = [icn["GR.IN.IC.STORAGE TOWER"]];
|
||||
sId["E-F-MH----"] = [icn["GR.IN.IC.SURFACE WATER INTAKE"]];
|
||||
sId["E-F-MI----"] = [icn["GR.IN.IC.WASTEWATER TREATMENT FACILITY"]];
|
||||
|
||||
// In other apendixes as well...
|
||||
sId["O-O-D-----"] = [icn["ST.IC.DEMONSTRATION"]];
|
||||
sId["O-I-R-----"] = [icn["ST.IC.GROUP"]];
|
||||
sId["O-V-B-----"] = [icn["ST.IC.BOMB"]];
|
||||
sId["O-V-P-----"] = [icn["ST.IC.POISONING"]];
|
||||
sId["O-O-HA----"] = [
|
||||
icn["ST.IC.HIJACKING (AIRPLANE)"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
];
|
||||
sId["O-O-HV----"] = [
|
||||
icn["ST.IC.HIJACKING (BOAT)"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
];
|
||||
sId["O-O-HT----"] = [
|
||||
icn["ST.IC.KNOWN INSURGENT VEHICLE"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
];
|
||||
|
||||
sId["S-G-IXH---"] = [icn["GR.IC.FF.MEDICAL TREATMENT FACILITY"]];
|
||||
sId["S-S-NM----"] = [icn["GR.IC.HOSPITAL SHIP"]];
|
||||
sId["E-O-BK----"] = [icn["GR.IC.FF.SUPPLY"], icn["GR.IC.WATER"]];
|
||||
sId["S-G-UULC--"] = [icn["GR.IC.LAW ENFORCEMENT"]];
|
||||
sId["S-S-XL----"] = [icn["GR.IC.LAW ENFORCEMENT VESSEL"]];
|
||||
sId["S-G-ES----"] = [icn["GR.EQ.SENSOR"]];
|
||||
sId["S-G-IUE---"] = [icn["GR.IN.IC.ELECTRIC POWER"]];
|
||||
sId["S-G-IUEN--"] = [
|
||||
icn["GR.IN.IC.ELECTRIC POWER"],
|
||||
icn["GR.IN.IC.ELECTRIC POWER NUCLEAR"]
|
||||
];
|
||||
sId["S-G-IRP---"] = [icn["GR.IC.FF.CLASS III"]];
|
||||
sId["S-G-IB----"] = [icn["GR.IN.IC.BASE"]];
|
||||
sId["S-G-IUT---"] = [icn["GR.IN.IC.TELECOMMUNICATIONS"]];
|
||||
sId["S-G-IT----"] = [icn["GR.IC.TRANSPORTATION"]];
|
||||
sId["S-G-IBA---"] = [
|
||||
icn["GR.IC.TRANSPORTATION"],
|
||||
icn["GR.IC.AIRPORT OF DEBARKATION"]
|
||||
];
|
||||
sId["S-G-IBN---"] = [icn["GR.IC.NAVAL"]];
|
||||
sId["S-G-IUP---"] = [icn["GR.IC.WATER"]];
|
||||
}
|
||||
};
|
||||
763
node_modules/milsymbol/src/lettersidc/sidc/equipment.js
generated
vendored
Normal file
@@ -0,0 +1,763 @@
|
||||
import { ms } from "../../ms.js";
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/ground.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons],
|
||||
icons: function equipment(sId, bbox, icn, _STD2525) {
|
||||
//Adds support for equipment
|
||||
sId["S-G-E-----"] = [];
|
||||
sId["S-G-EW----"] = []; // N/A
|
||||
sId["S-G-EWM---"] = [icn["GR.EQ.MISSILE LAUNCHER"]];
|
||||
sId["S-G-EWMA--"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"]
|
||||
];
|
||||
sId["S-G-EWMAS-"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.SHORT RANGE"]
|
||||
];
|
||||
sId["S-G-EWMASR"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.SHORT RANGE"],
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR TLAR"]
|
||||
];
|
||||
sId["S-G-EWMASE"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.SHORT RANGE"],
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR TELAR"]
|
||||
];
|
||||
sId["S-G-EWMAI-"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWMAIR"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"],
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR TLAR"]
|
||||
];
|
||||
sId["S-G-EWMAIE"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"],
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR TELAR"]
|
||||
];
|
||||
sId["S-G-EWMAL-"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.LONG RANGE"]
|
||||
];
|
||||
sId["S-G-EWMALR"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.LONG RANGE"],
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR TLAR"]
|
||||
];
|
||||
sId["S-G-EWMALE"] = [
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"],
|
||||
icn["GR.EQ.LONG RANGE"],
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR TELAR"]
|
||||
];
|
||||
sId["S-G-EWMAT-"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.7, icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"])
|
||||
),
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR THEATRE"]
|
||||
];
|
||||
sId["S-G-EWMATR"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.7, icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"])
|
||||
),
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR THEATRE"],
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR TLAR"]
|
||||
];
|
||||
sId["S-G-EWMATE"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.7, icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR"])
|
||||
),
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR THEATRE"],
|
||||
icn["GR.EQ.AIR DEFENCE MISSILE LAUNCHER SURFACE-TO-AIR TELAR"]
|
||||
];
|
||||
sId["S-G-EWMS--"] = [icn["GR.EQ.SURFACE-TO-SURFACE MISSILE LAUNCHER"]];
|
||||
sId["S-G-EWMSS-"] = [
|
||||
icn["GR.EQ.SURFACE-TO-SURFACE MISSILE LAUNCHER"],
|
||||
icn["GR.EQ.SHORT RANGE"]
|
||||
];
|
||||
sId["S-G-EWMSI-"] = [
|
||||
icn["GR.EQ.SURFACE-TO-SURFACE MISSILE LAUNCHER"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWMSL-"] = [
|
||||
icn["GR.EQ.SURFACE-TO-SURFACE MISSILE LAUNCHER"],
|
||||
icn["GR.EQ.LONG RANGE"]
|
||||
];
|
||||
sId["S-G-EWMT--"] = [icn["GR.EQ.ANTITANK MISSILE LAUNCHER"]];
|
||||
sId["S-G-EWMTL-"] = [
|
||||
icn["GR.EQ.ANTITANK MISSILE LAUNCHER"],
|
||||
icn["GR.EQ.SHORT RANGE"]
|
||||
];
|
||||
sId["S-G-EWMTM-"] = [
|
||||
icn["GR.EQ.ANTITANK MISSILE LAUNCHER"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWMTH-"] = [
|
||||
icn["GR.EQ.ANTITANK MISSILE LAUNCHER"],
|
||||
icn["GR.EQ.LONG RANGE"]
|
||||
];
|
||||
sId["S-G-EWS---"] = [icn["GR.EQ.SINGLE ROCKET LAUNCHER"]];
|
||||
sId["S-G-EWSL--"] = [
|
||||
icn["GR.EQ.SINGLE ROCKET LAUNCHER"],
|
||||
icn["GR.EQ.SHORT RANGE"]
|
||||
];
|
||||
sId["S-G-EWSM--"] = [
|
||||
icn["GR.EQ.SINGLE ROCKET LAUNCHER"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWSH--"] = [
|
||||
icn["GR.EQ.SINGLE ROCKET LAUNCHER"],
|
||||
icn["GR.EQ.LONG RANGE"]
|
||||
];
|
||||
sId["S-G-EWX---"] = [icn["GR.EQ.MULTIPLE ROCKET LAUNCHER"]];
|
||||
sId["S-G-EWXL--"] = [
|
||||
icn["GR.EQ.MULTIPLE ROCKET LAUNCHER"],
|
||||
ms._translate(0, 10, icn["GR.EQ.SHORT RANGE"])
|
||||
];
|
||||
sId["S-G-EWXM--"] = [
|
||||
icn["GR.EQ.MULTIPLE ROCKET LAUNCHER"],
|
||||
ms._translate(0, 10, icn["GR.EQ.INTERMEDIATE RANGE"])
|
||||
];
|
||||
sId["S-G-EWXH--"] = [
|
||||
icn["GR.EQ.MULTIPLE ROCKET LAUNCHER"],
|
||||
ms._translate(0, 10, icn["GR.EQ.LONG RANGE"])
|
||||
];
|
||||
sId["S-G-EWT---"] = [icn["GR.EQ.ANTITANK ROCKET LAUNCHER"]];
|
||||
sId["S-G-EWTL--"] = [
|
||||
icn["GR.EQ.ANTITANK ROCKET LAUNCHER"],
|
||||
icn["GR.EQ.SHORT RANGE"]
|
||||
];
|
||||
sId["S-G-EWTM--"] = [
|
||||
icn["GR.EQ.ANTITANK ROCKET LAUNCHER"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWTH--"] = [
|
||||
icn["GR.EQ.ANTITANK ROCKET LAUNCHER"],
|
||||
icn["GR.EQ.LONG RANGE"]
|
||||
];
|
||||
sId["S-G-EWR---"] = [icn["GR.EQ.RIFLE"]];
|
||||
sId["S-G-EWRR--"] = [icn["GR.EQ.RIFLE"], icn["GR.EQ.SHORT RANGE"]];
|
||||
sId["S-G-EWRL--"] = [icn["GR.EQ.RIFLE"], icn["GR.EQ.INTERMEDIATE RANGE"]];
|
||||
sId["S-G-EWRH--"] = [icn["GR.EQ.RIFLE"], icn["GR.EQ.LONG RANGE"]];
|
||||
sId["S-G-EWZ---"] = [icn["GR.EQ.GRENADE LAUNCHER"]];
|
||||
sId["S-G-EWZL--"] = [
|
||||
icn["GR.EQ.GRENADE LAUNCHER"],
|
||||
ms._translate(0, 20, icn["GR.EQ.SHORT RANGE"])
|
||||
];
|
||||
sId["S-G-EWZM--"] = [
|
||||
icn["GR.EQ.GRENADE LAUNCHER"],
|
||||
ms._translate(0, 20, icn["GR.EQ.INTERMEDIATE RANGE"])
|
||||
];
|
||||
sId["S-G-EWZH--"] = [
|
||||
icn["GR.EQ.GRENADE LAUNCHER"],
|
||||
ms._translate(0, 20, icn["GR.EQ.LONG RANGE"])
|
||||
];
|
||||
sId["S-G-EWO---"] = [icn["GR.EQ.MORTAR"]];
|
||||
sId["S-G-EWOL--"] = [icn["GR.EQ.MORTAR"], icn["GR.EQ.SHORT RANGE"]];
|
||||
sId["S-G-EWOM--"] = [icn["GR.EQ.MORTAR"], icn["GR.EQ.INTERMEDIATE RANGE"]];
|
||||
sId["S-G-EWOH--"] = [icn["GR.EQ.MORTAR"], icn["GR.EQ.LONG RANGE"]];
|
||||
sId["S-G-EWH---"] = [icn["GR.EQ.HOWITZER"]];
|
||||
sId["S-G-EWHL--"] = [icn["GR.EQ.HOWITZER"], icn["GR.EQ.SHORT RANGE"]];
|
||||
sId["S-G-EWHLS-"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.8, [icn["GR.EQ.HOWITZER"], icn["GR.EQ.SHORT RANGE"]])
|
||||
),
|
||||
icn["GR.EQ.HOWITZER TRACKED"]
|
||||
];
|
||||
sId["S-G-EWHM--"] = [
|
||||
icn["GR.EQ.HOWITZER"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWHMS-"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.8, [icn["GR.EQ.HOWITZER"], icn["GR.EQ.INTERMEDIATE RANGE"]])
|
||||
),
|
||||
icn["GR.EQ.HOWITZER TRACKED"]
|
||||
];
|
||||
sId["S-G-EWHH--"] = [icn["GR.EQ.HOWITZER"], icn["GR.EQ.LONG RANGE"]];
|
||||
sId["S-G-EWHHS-"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.8, [icn["GR.EQ.HOWITZER"], icn["GR.EQ.LONG RANGE"]])
|
||||
),
|
||||
icn["GR.EQ.HOWITZER TRACKED"]
|
||||
];
|
||||
sId["S-G-EWG---"] = [icn["GR.EQ.ANTITANK GUN"]];
|
||||
sId["S-G-EWGL--"] = [icn["GR.EQ.ANTITANK GUN"], icn["GR.EQ.SHORT RANGE"]];
|
||||
sId["S-G-EWGM--"] = [
|
||||
icn["GR.EQ.ANTITANK GUN"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWGH--"] = [icn["GR.EQ.ANTITANK GUN"], icn["GR.EQ.LONG RANGE"]];
|
||||
sId["S-G-EWGR--"] = [icn["GR.EQ.RECOILLESS GUN"]];
|
||||
sId["S-G-EWD---"] = [icn["GR.EQ.DIRECT FIRE GUN"]];
|
||||
sId["S-G-EWDL--"] = [
|
||||
icn["GR.EQ.DIRECT FIRE GUN"],
|
||||
icn["GR.EQ.SHORT RANGE"]
|
||||
];
|
||||
sId["S-G-EWDLS-"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.8, [icn["GR.EQ.DIRECT FIRE GUN"], icn["GR.EQ.SHORT RANGE"]])
|
||||
),
|
||||
icn["GR.EQ.HOWITZER TRACKED"]
|
||||
];
|
||||
sId["S-G-EWDM--"] = [
|
||||
icn["GR.EQ.DIRECT FIRE GUN"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWDMS-"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.8, [
|
||||
icn["GR.EQ.DIRECT FIRE GUN"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
])
|
||||
),
|
||||
icn["GR.EQ.HOWITZER TRACKED"]
|
||||
];
|
||||
sId["S-G-EWDH--"] = [icn["GR.EQ.DIRECT FIRE GUN"], icn["GR.EQ.LONG RANGE"]];
|
||||
sId["S-G-EWDHS-"] = [
|
||||
ms._translate(
|
||||
0,
|
||||
-15,
|
||||
ms._scale(0.8, [icn["GR.EQ.DIRECT FIRE GUN"], icn["GR.EQ.LONG RANGE"]])
|
||||
),
|
||||
icn["GR.EQ.HOWITZER TRACKED"]
|
||||
];
|
||||
sId["S-G-EWA---"] = [icn["GR.EQ.AIR DEFENCE GUN"]];
|
||||
sId["S-G-EWAL--"] = [
|
||||
icn["GR.EQ.AIR DEFENCE GUN"],
|
||||
icn["GR.EQ.SHORT RANGE"]
|
||||
];
|
||||
sId["S-G-EWAM--"] = [
|
||||
icn["GR.EQ.AIR DEFENCE GUN"],
|
||||
icn["GR.EQ.INTERMEDIATE RANGE"]
|
||||
];
|
||||
sId["S-G-EWAH--"] = [icn["GR.EQ.AIR DEFENCE GUN"], icn["GR.EQ.LONG RANGE"]];
|
||||
|
||||
sId["S-G-EV----"] = [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
]
|
||||
];
|
||||
sId["S-G-EVA---"] = [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
],
|
||||
icn["GR.EQ.ARMOURED VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVAT--"] = [icn["GR.EQ.TANK"]];
|
||||
sId["S-G-EVATL-"] = [icn["GR.EQ.TANK"], icn["GR.EQ.LIGHT TANK"]];
|
||||
sId["S-G-EVATLR"] = sId["S-G-EVATW-"] = [
|
||||
icn["GR.EQ.TANK"],
|
||||
icn["GR.EQ.LIGHT TANK"],
|
||||
icn["GR.EQ.TANK RECOVERY VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVATM-"] = [icn["GR.EQ.TANK"], icn["GR.EQ.MEDIUM TANK"]];
|
||||
sId["S-G-EVATMR"] = sId["S-G-EVATX-"] = [
|
||||
icn["GR.EQ.TANK"],
|
||||
icn["GR.EQ.MEDIUM TANK"],
|
||||
icn["GR.EQ.TANK RECOVERY VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVATH-"] = [icn["GR.EQ.TANK"], icn["GR.EQ.HEAVY TANK"]];
|
||||
sId["S-G-EVATHR"] = sId["S-G-EVATY-"] = [
|
||||
icn["GR.EQ.TANK"],
|
||||
icn["GR.EQ.HEAVY TANK"],
|
||||
icn["GR.EQ.TANK RECOVERY VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVAA--"] = [icn["GR.EQ.ARMOURED PERSONNEL CARRIER"]];
|
||||
sId["S-G-EVAAR-"] = [
|
||||
icn["GR.EQ.ARMOURED PERSONNEL CARRIER"],
|
||||
icn["GR.EQ.TANK RECOVERY VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVAI--"] = [icn["GR.EQ.ARMOURED FIGHTING VEHICLE"]];
|
||||
sId["S-G-EVAC--"] = [
|
||||
icn["GR.EQ.ARMOURED FIGHTING VEHICLE (AFV) COMMAND AND CONTROL"]
|
||||
];
|
||||
sId["S-G-EVAS--"] = [
|
||||
icn["GR.EQ.ARMOURED PERSONNEL CARRIER COMBAT SERVICE SUPPORT VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVAL--"] = [
|
||||
icn["GR.EQ.ARMOURED FIGHTING VEHICLE"],
|
||||
icn["GR.EQ.CROSS-COUNTRY"]
|
||||
];
|
||||
sId["S-G-EVU---"] = [icn["GR.EQ.UTILITY VEHICLE"]];
|
||||
sId["S-G-EVUB--"] = [icn["GR.EQ.BUS"]];
|
||||
sId["S-G-EVUS--"] = [icn["GR.EQ.SEMI-TRAILER TRUCK"]];
|
||||
sId["S-G-EVUSL-"] = [
|
||||
icn["GR.EQ.SEMI-TRAILER TRUCK"],
|
||||
icn["GR.EQ.UTILITY VEHICLE LIGHT"]
|
||||
];
|
||||
sId["S-G-EVUSM-"] = [
|
||||
icn["GR.EQ.SEMI-TRAILER TRUCK"],
|
||||
icn["GR.EQ.UTILITY VEHICLE MEDIUM"]
|
||||
];
|
||||
sId["S-G-EVUSH-"] = [
|
||||
icn["GR.EQ.SEMI-TRAILER TRUCK"],
|
||||
icn["GR.EQ.UTILITY VEHICLE HEAVY"]
|
||||
];
|
||||
sId["S-G-EVUL--"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.LIMITED CROSS-COUNTRY"]
|
||||
];
|
||||
sId["S-G-EVUX--"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CROSS-COUNTRY"]
|
||||
];
|
||||
sId["S-G-EVUR--"] = [icn["GR.EQ.WATER VEHICLE"]];
|
||||
sId["S-G-EVUT--"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.UTILITY VEHICLE.TOW TRUCK"]
|
||||
];
|
||||
sId["S-G-EVUTL-"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.UTILITY VEHICLE.TOW TRUCK"],
|
||||
icn["GR.EQ.UTILITY VEHICLE.TOW TRUCK.LIGHT"]
|
||||
];
|
||||
sId["S-G-EVUTH-"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.UTILITY VEHICLE.TOW TRUCK"],
|
||||
icn["GR.EQ.UTILITY VEHICLE.TOW TRUCK.HEAVY"]
|
||||
];
|
||||
sId["S-G-EVUA--"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.MEDICAL EVACUATION"]
|
||||
];
|
||||
sId["S-G-EVUAA-"] = [
|
||||
icn["GR.EQ.ARMOURED PERSONNEL CARRIER"],
|
||||
icn["GR.EQ.MEDICAL EVACUATION"]
|
||||
];
|
||||
sId["S-G-EVE---"] = [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
],
|
||||
ms._scale(0.7, icn["GR.IC.ENGINEER"])
|
||||
];
|
||||
sId["S-G-EVEB--"] = [icn["GR.EQ.BRIDGE"]];
|
||||
sId["S-G-EVEE--"] = [icn["GR.EQ.EARTHMOVER"]];
|
||||
//.X.3.2.2.3.2 .1 WRONG SIDC
|
||||
//sId['S-G-EVEE--'] = [];
|
||||
sId["S-G-EVEC--"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.LIMITED CROSS-COUNTRY"],
|
||||
ms._scale(0.6, icn["GR.IC.ENGINEER"])
|
||||
];
|
||||
sId["S-G-EVEM--"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.MINE LAYING VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVEMA-"] = [
|
||||
icn["GR.EQ.MINE CLEARING EQUIPMENT"],
|
||||
icn["GR.EQ.TANK"]
|
||||
];
|
||||
sId["S-G-EVEMV-"] = [
|
||||
icn["GR.EQ.ARMOURED PERSONNEL CARRIER"],
|
||||
icn["GR.EQ.ARMORED CARRIER WITH VOLCANO"]
|
||||
];
|
||||
sId["S-G-EVEMT-"] = [
|
||||
icn["GR.EQ.MINE CLEARING EQUIPMENT"],
|
||||
ms._translate(0, -10, icn["GR.EQ.LIMITED CROSS-COUNTRY"])
|
||||
];
|
||||
sId["S-G-EVEML-"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.LIMITED CROSS-COUNTRY"],
|
||||
icn["GR.EQ.ARMORED CARRIER WITH VOLCANO"]
|
||||
];
|
||||
sId["S-G-EVEA--"] = [icn["GR.EQ.MINE CLEARING EQUIPMENT"]];
|
||||
sId["S-G-EVEAA-"] = [
|
||||
icn["GR.EQ.MINE CLEARING EQUIPMENT"],
|
||||
icn["GR.EQ.TANK"]
|
||||
];
|
||||
sId["S-G-EVEAT-"] = [
|
||||
icn["GR.EQ.MINE CLEARING EQUIPMENT"],
|
||||
ms._translate(0, -10, icn["GR.EQ.LIMITED CROSS-COUNTRY"])
|
||||
];
|
||||
sId["S-G-EVEMSM"] = [
|
||||
icn["GR.EQ.ARMOURED PERSONNEL CARRIER"],
|
||||
icn["GR.EQ.MINE SCATTERABLE"]
|
||||
];
|
||||
sId["S-G-EVED--"] = [icn["GR.EQ.DOZER"]];
|
||||
sId["S-G-EVEDA-"] = [icn["GR.EQ.DOZER ARMORED"]];
|
||||
sId["S-G-EVES--"] = [
|
||||
icn["GR.EQ.ARMOURED PERSONNEL CARRIER"],
|
||||
ms._scale(0.6, icn["GR.IC.ENGINEER"])
|
||||
];
|
||||
sId["S-G-EVER--"] = [
|
||||
icn["GR.EQ.ARMOURED PERSONNEL CARRIER"],
|
||||
ms._scale(0.6, icn["GR.IC.ENGINEER"]),
|
||||
icn["GR.EQ.ARMOURED PERSONNEL CARRIER ENGINEER RECON VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVEH--"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.LIMITED CROSS-COUNTRY"],
|
||||
icn["GR.EQ.UTILITY VEHICLE BACKHOE"]
|
||||
];
|
||||
sId["S-G-EVEF--"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CROSS-COUNTRY"],
|
||||
icn["GR.EQ.UTILITY VEHICLE FERRY TRANSPORTER"]
|
||||
];
|
||||
sId["S-G-EVD---"] = [
|
||||
icn["GR.EQ.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CROSS-COUNTRY"],
|
||||
ms._scale(0.7, icn["GR.IC.DRILLING"])
|
||||
];
|
||||
sId["S-G-EVT---"] = [icn["GR.EQ.TRAIN LOCOMOTIVE"]];
|
||||
sId["S-G-EVC---"] = [icn["GR.I.CIVILIAN"]];
|
||||
sId["S-G-EVCA--"] = [icn["GR.EQ.CIVILIAN VEHICLE.AUTOMOBILE"]];
|
||||
sId["S-G-EVCAL-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.AUTOMOBILE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.LIGHT"]
|
||||
];
|
||||
sId["S-G-EVCAM-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.AUTOMOBILE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MEDIUM"]
|
||||
];
|
||||
sId["S-G-EVCAH-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.AUTOMOBILE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.HEAVY"]
|
||||
];
|
||||
sId["S-G-EVCO--"] = [icn["GR.EQ.CIVILIAN VEHICLE.OPEN-BED TRUCK"]];
|
||||
sId["S-G-EVCOL-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.OPEN-BED TRUCK"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.LIGHT"]
|
||||
];
|
||||
sId["S-G-EVCOM-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.OPEN-BED TRUCK"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MEDIUM"]
|
||||
];
|
||||
sId["S-G-EVCOH-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.OPEN-BED TRUCK"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.HEAVY"]
|
||||
];
|
||||
sId["S-G-EVCM--"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MULTIPLE PASSENGER VEHICLE"]
|
||||
];
|
||||
sId["S-G-EVCML-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MULTIPLE PASSENGER VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.LIGHT"]
|
||||
];
|
||||
sId["S-G-EVCMM-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MULTIPLE PASSENGER VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MEDIUM"]
|
||||
];
|
||||
sId["S-G-EVCMH-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MULTIPLE PASSENGER VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.HEAVY"]
|
||||
];
|
||||
sId["S-G-EVCU--"] = [icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"]];
|
||||
sId["S-G-EVCUL-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.LIGHT"]
|
||||
];
|
||||
sId["S-G-EVCUM-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MEDIUM"]
|
||||
];
|
||||
sId["S-G-EVCUH-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.HEAVY"]
|
||||
];
|
||||
sId["S-G-EVCJ--"] = [icn["GR.EQ.CIVILIAN VEHICLE.JEEP TYPE VEHICLE"]];
|
||||
sId["S-G-EVCJL-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.JEEP TYPE VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.LIGHT"]
|
||||
];
|
||||
sId["S-G-EVCJM-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.JEEP TYPE VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MEDIUM"]
|
||||
];
|
||||
sId["S-G-EVCJH-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.JEEP TYPE VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.HEAVY"]
|
||||
];
|
||||
sId["S-G-EVCT--"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.TRAILER"]
|
||||
];
|
||||
sId["S-G-EVCTL-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.LIGHT"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.TRAILER"]
|
||||
];
|
||||
sId["S-G-EVCTM-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MEDIUM"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.TRAILER"]
|
||||
];
|
||||
sId["S-G-EVCTH-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.UTILITY VEHICLE"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.HEAVY"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.TRAILER"]
|
||||
];
|
||||
sId["S-G-EVCF--"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.OPEN-BED TRUCK"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.TRAILER"]
|
||||
];
|
||||
sId["S-G-EVCFL-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.OPEN-BED TRUCK"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.LIGHT"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.TRAILER"]
|
||||
];
|
||||
sId["S-G-EVCFM-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.OPEN-BED TRUCK"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.MEDIUM"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.TRAILER"]
|
||||
];
|
||||
sId["S-G-EVCFH-"] = [
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.OPEN-BED TRUCK"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.HEAVY"],
|
||||
icn["GR.EQ.CIVILIAN VEHICLE.TRAILER"]
|
||||
];
|
||||
sId["S-G-EVM---"] = [icn["GR.EQ.PACK ANIMAL"]];
|
||||
sId["S-G-EVS---"] = [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
],
|
||||
icn["GR.EQ.MISSILE SUPPORT"]
|
||||
];
|
||||
sId["S-G-EVST--"] = _STD2525 // For some strange reason app6 uses this code for other things...
|
||||
? [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
],
|
||||
icn["GR.EQ.MISSILE TRANSLOADER"]
|
||||
]
|
||||
: [icn["GR.EQ.TRAIN LOCOMOTIVE"]];
|
||||
sId["S-G-EVSR--"] = [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
],
|
||||
icn["GR.EQ.MISSILE TRANSPORTER"]
|
||||
];
|
||||
sId["S-G-EVSC--"] = [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
],
|
||||
icn["GR.EQ.MISSILE CRANE/LOADING DEVICE"]
|
||||
];
|
||||
sId["S-G-EVSP--"] = [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
],
|
||||
icn["GR.EQ.MISSILE PROPELLANT TRANSPORTER"]
|
||||
];
|
||||
sId["S-G-EVSW--"] = [
|
||||
icn[
|
||||
"GR.EQ.ARMOURED PROTECTED VEHICLE WITH LIMITED CROSS COUNTRY MOBILITY"
|
||||
],
|
||||
icn["GR.EQ.MISSILE WARHEAD TRANSPORTER"]
|
||||
];
|
||||
sId["S-G-ES----"] = [icn["GR.EQ.SENSOR"]];
|
||||
sId["S-G-ESR---"] = [icn["GR.EQ.RADAR"]];
|
||||
sId["S-G-ESE---"] = [icn["GR.EQ.SENSOR EMPLACED"]];
|
||||
sId["S-G-EXI---"] = [icn["GR.EQ.IMPROVISED EXPLOSIVE DEVICE"]];
|
||||
sId["S-G-EX----"] = []; // N/A
|
||||
sId["S-G-EXL---"] = [icn["GR.EQ.LASER"]];
|
||||
sId["S-G-EXN---"] = [icn["GR.EQ.CBRN EQUIPMENT"]];
|
||||
sId["S-G-EXF---"] = [icn["GR.EQ.FLAME THROWER"]];
|
||||
sId["S-G-EXM---"] = [icn["GR.EQ.LAND MINES"]];
|
||||
sId["S-G-EXMC--"] = [icn["GR.EQ.ANTIPERSONNEL LAND MINE"]];
|
||||
sId["S-G-EXML--"] = [icn["GR.EQ.ANTIPERSONNEL LAND MINE LESS THAN LETHAL"]];
|
||||
|
||||
//This sets up the bounding boxes for equipment to have the bottom at the right place. (this will be used for mobility when unframed)
|
||||
var equipmentBottom = {
|
||||
"E-----": 0,
|
||||
"EWM---": 140,
|
||||
"EWMA--": 140,
|
||||
"EWMAS-": 140,
|
||||
EWMASR: 140,
|
||||
EWMASE: 140,
|
||||
"EWMAI-": 140,
|
||||
EWMAIR: 140,
|
||||
EWMAIE: 140,
|
||||
"EWMAL-": 140,
|
||||
EWMALR: 140,
|
||||
EWMALE: 140,
|
||||
"EWMAT-": 153,
|
||||
EWMATR: 153,
|
||||
EWMATE: 153,
|
||||
"EWMS--": 140,
|
||||
"EWMSS-": 140,
|
||||
"EWMSI-": 140,
|
||||
"EWMSL-": 140,
|
||||
"EWMT--": 140,
|
||||
"EWMTL-": 140,
|
||||
"EWMTM-": 140,
|
||||
"EWMTH-": 140,
|
||||
"EWS---": 140,
|
||||
"EWSL--": 140,
|
||||
"EWSM--": 140,
|
||||
"EWSH--": 140,
|
||||
"EWX---": 140,
|
||||
"EWXL--": 140,
|
||||
"EWXM--": 140,
|
||||
"EWXH--": 140,
|
||||
"EWT---": 140,
|
||||
"EWTL--": 140,
|
||||
"EWTM--": 140,
|
||||
"EWTH--": 140,
|
||||
"EWR---": 140,
|
||||
"EWRL--": 140,
|
||||
"EWRM--": 140,
|
||||
"EWRH--": 140,
|
||||
"EWZ---": 140,
|
||||
"EWZL--": 140,
|
||||
"EWZM--": 140,
|
||||
"EWZH--": 140,
|
||||
"EWO---": 140,
|
||||
"EWOL--": 140,
|
||||
"EWOM--": 140,
|
||||
"EWOH--": 140,
|
||||
"EWH---": 140,
|
||||
"EWHL--": 140,
|
||||
"EWHLS-": 130,
|
||||
"EWHM--": 140,
|
||||
"EWHMS-": 130,
|
||||
"EWHH--": 140,
|
||||
"EWHHS-": 130,
|
||||
"EWG---": 140,
|
||||
"EWGL--": 140,
|
||||
"EWGM--": 140,
|
||||
"EWGH--": 140,
|
||||
"EWGR--": 140,
|
||||
"EWD---": 140,
|
||||
"EWDL--": 140,
|
||||
"EWDLS-": 130,
|
||||
"EWDM--": 140,
|
||||
"EWDMS-": 130,
|
||||
"EWDH--": 140,
|
||||
"EWDHS-": 130,
|
||||
"EWA---": 140,
|
||||
"EWAL--": 140,
|
||||
"EWAM--": 140,
|
||||
"EWAH--": 140,
|
||||
"EV----": 129,
|
||||
"EVA---": 129,
|
||||
"EVAT--": 130,
|
||||
"EVATL-": 130,
|
||||
EVATLR: 130,
|
||||
"EVATM-": 130,
|
||||
EVATMR: 130,
|
||||
"EVATH-": 130,
|
||||
EVATHR: 130,
|
||||
"EVAA--": 130,
|
||||
"EVAAR-": 130,
|
||||
"EVAI--": 130,
|
||||
"EVAC--": 130,
|
||||
"EVAS--": 130,
|
||||
"EVAL--": 140,
|
||||
"EVU---": 130,
|
||||
"EVAB--": 130,
|
||||
"EVUS--": 140,
|
||||
"EVUSL-": 140,
|
||||
"EVUSM-": 140,
|
||||
"EVUSH-": 140,
|
||||
"EVUL--": 140,
|
||||
"EVUX--": 140,
|
||||
"EVUR--": 130,
|
||||
"EVUTL-": 130,
|
||||
"EVUTH-": 130,
|
||||
"EVUA--": 130,
|
||||
"EVUAA-": 130,
|
||||
"EVE---": 129,
|
||||
"EVEB--": 130,
|
||||
"EVEE--": 130,
|
||||
"EVEC--": 140,
|
||||
"EVEM--": 130,
|
||||
"EVEMA-": 130,
|
||||
"EVEMV-": 130,
|
||||
"EVEMT-": 130,
|
||||
"EVEML-": 140,
|
||||
"EVEA--": 120,
|
||||
"EVEAA-": 130,
|
||||
"EVEAT-": 130,
|
||||
EVEMSM: 130,
|
||||
"EVED--": 130,
|
||||
"EVEDA-": 130,
|
||||
"EVES--": 130,
|
||||
"EVER--": 130,
|
||||
"EVEH--": 140,
|
||||
"EVEF--": 140,
|
||||
"EVD---": 140,
|
||||
"EVT--": 130,
|
||||
"EVC---": 119,
|
||||
"EVCA--": 132.5,
|
||||
"EVCAL-": 132.5,
|
||||
"EVCAM-": 132.5,
|
||||
"EVCAH-": 132.5,
|
||||
"EVCO--": 132.5,
|
||||
"EVCOL-": 132.5,
|
||||
"EVCOM-": 132.5,
|
||||
"EVCOH-": 132.5,
|
||||
"EVCM--": 132.5,
|
||||
"EVCML-": 132.5,
|
||||
"EVCMM-": 132.5,
|
||||
"EVCMH-": 132.5,
|
||||
"EVCU--": 132.5,
|
||||
"EVCUL-": 132.5,
|
||||
"EVCUM-": 132.5,
|
||||
"EVCUH-": 132.5,
|
||||
"EVCJ--": 132.5,
|
||||
"EVCJL-": 132.5,
|
||||
"EVCJM-": 132.5,
|
||||
"EVCJH-": 132.5,
|
||||
"EVCT--": 132.5,
|
||||
"EVCTL-": 132.5,
|
||||
"EVCTM-": 132.5,
|
||||
"EVCTH-": 132.5,
|
||||
"EVCF--": 132.5,
|
||||
"EVCFL-": 132.5,
|
||||
"EVCFM-": 132.5,
|
||||
"EVCFH-": 132.5,
|
||||
"EVM---": 125,
|
||||
"EVS---": 129,
|
||||
"EVST--": 129,
|
||||
"EVSR--": 129,
|
||||
"EVSC--": 129,
|
||||
"EVSP--": 129,
|
||||
"EVSW--": 129,
|
||||
"ES----": 140,
|
||||
"ESR---": 120,
|
||||
"ESE---": 136,
|
||||
"EXI---": 119,
|
||||
"EXL---": 145,
|
||||
"EXN---": 140,
|
||||
"EXF---": 135,
|
||||
"EXM---": 130,
|
||||
"EXMC--": 122,
|
||||
"EXML--": 122
|
||||
};
|
||||
for (var key in equipmentBottom) {
|
||||
if (!equipmentBottom.hasOwnProperty(key)) continue;
|
||||
bbox["S-G-" + key] = {
|
||||
x1: 50,
|
||||
x2: 150,
|
||||
y1: 50,
|
||||
y2: equipmentBottom[key]
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
1167
node_modules/milsymbol/src/lettersidc/sidc/ground.js
generated
vendored
Normal file
84
node_modules/milsymbol/src/lettersidc/sidc/installations.js
generated
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/ground.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons],
|
||||
icons: function installations(sId, bbox, icn, _STD2525) {
|
||||
//Adds support for installations
|
||||
sId["S-G-I-----"] = [];
|
||||
sId["S-G-IR----"] = [icn["GR.IN.IC.RAW MATERIAL PRODUCTION/STORAGE"]];
|
||||
sId["S-G-IRM---"] = [icn["GR.IN.IC.MINE"]];
|
||||
sId["S-G-IRP---"] = [icn["GR.IC.FF.CLASS III"]];
|
||||
sId["S-G-IRN---"] = [icn["GR.IC.CBRN"]];
|
||||
sId["S-G-IRNB--"] = [icn["GR.IC.CBRN"], icn["GR.M1.BIOLOGICAL"]];
|
||||
sId["S-G-IRNC--"] = [icn["GR.IC.CBRN"], icn["GR.M1.CHEMICAL"]];
|
||||
sId["S-G-IRNN--"] = [icn["GR.IC.CBRN"], icn["GR.M1.NUCLEAR"]];
|
||||
sId["S-G-IP----"] = [icn["GR.IN.IC.PROCESSING FACILITY"]];
|
||||
sId["S-G-IPD---"] = [icn["GR.IC.CBRN"], icn["GR.M1.DECONTAMINATION"]];
|
||||
sId["S-G-IE----"] = [icn["GR.IC.EQUIPMENT MANUFACTURE"]];
|
||||
sId["S-G-IU----"] = [icn["GR.IN.IC.UTILITY FACILITY"]];
|
||||
sId["S-G-IUR---"] = [icn["GR.IN.IC.RESEARCH"]];
|
||||
sId["S-G-IUT---"] = [icn["GR.IN.IC.TELECOMMUNICATIONS"]];
|
||||
sId["S-G-IUE---"] = [icn["GR.IN.IC.ELECTRIC POWER"]];
|
||||
sId["S-G-IUEN--"] = [
|
||||
icn["GR.IN.IC.ELECTRIC POWER"],
|
||||
icn["GR.IN.IC.ELECTRIC POWER NUCLEAR"]
|
||||
];
|
||||
sId["S-G-IUED--"] = [
|
||||
icn["GR.IN.IC.ELECTRIC POWER"],
|
||||
icn["GR.IN.IC.ELECTRIC POWER DAM"]
|
||||
];
|
||||
sId["S-G-IUEF--"] = [
|
||||
icn["GR.IN.IC.ELECTRIC POWER"],
|
||||
icn["GR.IN.IC.ELECTRIC POWER FOSSIL"]
|
||||
];
|
||||
sId["S-G-IUP---"] = [icn["GR.IC.WATER"]];
|
||||
sId["S-G-IM----"] = []; // N/A
|
||||
sId["S-G-IMF---"] = [icn["GR.IN.IC.ATOMIC ENERGY"]];
|
||||
sId["S-G-IMFA--"] = [
|
||||
icn["GR.IN.IC.ATOMIC ENERGY"],
|
||||
icn["GR.IN.M2.ATOMIC ENERGY REACTOR"]
|
||||
];
|
||||
sId["S-G-IMFP--"] = [
|
||||
icn["GR.IN.IC.ATOMIC ENERGY"],
|
||||
icn["GR.IN.M2.NUCLEAR MATERIAL PRODUCTION"]
|
||||
];
|
||||
sId["S-G-IMFPW-"] = [
|
||||
icn["GR.IN.IC.ATOMIC ENERGY WEAPONS GRADE"],
|
||||
icn["GR.IN.M2.NUCLEAR MATERIAL PRODUCTION"]
|
||||
];
|
||||
sId["S-G-IMFS--"] = [
|
||||
icn["GR.IN.IC.ATOMIC ENERGY"],
|
||||
icn["GR.IN.M2.NUCLEAR MATERIAL STORAGE"]
|
||||
];
|
||||
sId["S-G-IMA---"] = [icn["GR.IN.IC.AIRCRAFT PRODUCTION & ASSEMBLY"]];
|
||||
sId["S-G-IME---"] = [icn["GR.IC.FF.CLASS V"]];
|
||||
sId["S-G-IMG---"] = [icn["GR.EQ.TANK"]];
|
||||
sId["S-G-IMV---"] = [icn["GR.IC.MAINTENANCE"]];
|
||||
sId["S-G-IMN---"] = [icn["GR.EQ.DOZER"]];
|
||||
sId["S-G-IMNB--"] = [icn["GR.IN.IC.BRIDGE"]];
|
||||
sId["S-G-IMC---"] = [
|
||||
icn["GR.IC.CBRN"],
|
||||
icn["GR.IN.M2.CHEMICAL & BIOLOGICAL WARFARE"]
|
||||
];
|
||||
sId["S-G-IMS---"] = [icn["GR.IC.NAVAL"], icn["GR.IN.M2.SHIP CONSTRUCTION"]];
|
||||
sId["S-G-IMM---"] = [icn["GR.IC.MISSILE"]];
|
||||
sId["S-G-IG----"] = [icn["GR.I.GOVERNMENT"]];
|
||||
sId["S-G-IB----"] = [icn["GR.IN.IC.BASE"]];
|
||||
sId["S-G-IBA---"] = [
|
||||
icn["GR.IC.TRANSPORTATION"],
|
||||
icn["GR.IC.AIRPORT OF DEBARKATION"]
|
||||
];
|
||||
sId["S-G-IBN---"] = [icn["GR.IC.NAVAL"]];
|
||||
sId["S-G-IT----"] = [icn["GR.IC.TRANSPORTATION"]];
|
||||
sId["S-G-IX----"] = [icn["GR.IC.FF.MEDICAL"]];
|
||||
sId["S-G-IXH---"] = [icn["GR.IC.FF.MEDICAL TREATMENT FACILITY"]];
|
||||
sId["S-G-IRR---"] = sId["S-G-IRSR--"] = [
|
||||
icn["GR.IN.IC.SEA SURFACE INSTALLATION, OIL RIG/PLATFORM"]
|
||||
];
|
||||
}
|
||||
};
|
||||
134
node_modules/milsymbol/src/lettersidc/sidc/sea.js
generated
vendored
Normal file
@@ -0,0 +1,134 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/sea.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons],
|
||||
icons: function sea(sId, bbox, icn, _STD2525) {
|
||||
// SEA ===========================================================================
|
||||
sId["S-S-------"] = [];
|
||||
sId["S-S-C-----"] = [icn["SE.IC.COMBATANT"]];
|
||||
sId["S-S-CL----"] = [icn["SE.IC.SURFACE COMBATANT, LINE"]];
|
||||
sId["S-S-CLCV--"] = [icn["SE.IC.CARRIER"]];
|
||||
sId["S-S-CLBB--"] = [icn["SE.IC.BATTLESHIP"]];
|
||||
sId["S-S-CLCC--"] = [icn["SE.IC.CRUISER"]];
|
||||
sId["S-S-CLDD--"] = [icn["SE.IC.DESTROYER"]];
|
||||
sId["S-S-CLFF--"] = [icn["SE.IC.FRIGATE"]];
|
||||
sId["S-S-CLLL--"] = [icn["SE.IC.LITTORAL COMBATANT SHIP"]];
|
||||
sId["S-S-CLLLAS"] = [
|
||||
icn["SE.IC.LITTORAL COMBATANT SHIP"],
|
||||
icn["SE.M2.ANTISUBMARINE WARFARE"]
|
||||
];
|
||||
sId["S-S-CLLLMI"] = [
|
||||
icn["SE.IC.LITTORAL COMBATANT SHIP"],
|
||||
icn["SE.M2.MINE WARFARE"]
|
||||
];
|
||||
sId["S-S-CLLLSU"] = [
|
||||
icn["SE.IC.LITTORAL COMBATANT SHIP"],
|
||||
icn["SE.M2.SURFACE WARFARE"]
|
||||
];
|
||||
sId["S-S-CA----"] = [icn["SE.IC.AMPHIBIOUS WARFARE SHIP"]];
|
||||
sId["S-S-CALA--"] = [
|
||||
_STD2525
|
||||
? icn["SE.IC.AMPHIBIOUS ASSAULT"]
|
||||
: icn["SE.IC.AMPHIBIOUS ASSAULT SHIP, GENERAL"]
|
||||
];
|
||||
sId["S-S-CALS--"] = [icn["SE.IC.LANDING SHIP"]];
|
||||
sId["S-S-CALSM-"] = [icn["SE.IC.LANDING SHIP"], icn["SE.M2.MEDIUM"]];
|
||||
sId["S-S-CALST-"] = [icn["SE.IC.LANDING SHIP"], icn["SE.M2.TANK"]];
|
||||
sId["S-S-CALC--"] = [icn["SE.IC.LANDING CRAFT"]];
|
||||
sId["S-S-CM----"] = [icn["SE.IC.MINE WARFARE VESSEL"]];
|
||||
sId["S-S-CMML--"] = [icn["SE.IC.MINELAYER"]];
|
||||
sId["S-S-CMMS--"] = [icn["SE.IC.MINESWEEPER"]];
|
||||
sId["S-S-CMMH--"] = [icn["SE.IC.MINEHUNTER"]];
|
||||
sId["S-S-CMMA--"] = [icn["SE.IC.MINE COUNTER MEASURE SUPPORT SHIP"]];
|
||||
sId["S-S-CMMD--"] = [icn["SE.IC.MINESWEEPER, DRONE"]];
|
||||
sId["S-S-CP----"] = [icn["SE.IC.PATROL"]];
|
||||
sId["S-S-CPSB--"] = [icn["SE.IC.PATROL CRAFT"]];
|
||||
sId["S-S-CPSU--"] = [icn["SE.IC.PATROL ANTI SUBMARINE WARFARE"]];
|
||||
sId["S-S-CPSUM-"] = [icn["SE.IC.PATROL ANTISHIP MISSILE"]];
|
||||
sId["S-S-CPSUT-"] = [icn["SE.IC.PATROL TORPEDO"]];
|
||||
sId["S-S-CPSUG-"] = [icn["SE.IC.PATROL GUN"]];
|
||||
sId["S-S-CH----"] = [icn["SE.IC.HOVERCRAFT"]];
|
||||
//1.X.4.1.6 in 2525 listed as 1.X.4.1.7
|
||||
sId["S-S-G-----"] = [icn["SE.IC.NAVY TASK ORGANIZATION UNIT"]];
|
||||
//1.X.4.1.6.1 in 2525 listed as 1.X.4.1.7.1 Different SIDC listed let's support both
|
||||
sId["S-S-GF----"] = sId["S-S-GT----"] = [icn["SE.IC.NAVY TASK FORCE"]];
|
||||
//1.X.4.1.6.2 in 2525 listed as 1.X.4.1.7.2
|
||||
sId["S-S-GG----"] = [icn["SE.IC.NAVY TASK GROUP"]];
|
||||
//1.X.4.1.6.3 in 2525 listed as 1.X.4.1.7.3
|
||||
sId["S-S-GU----"] = [icn["SE.IC.NAVY TASK UNIT"]];
|
||||
sId["S-S-GE----"] = [icn["SE.IC.NAVY TASK ELEMENT"]];
|
||||
//1.X.4.1.6.5 in 2525 listed as 1.X.4.1.7.4
|
||||
sId["S-S-GC----"] = [icn["SE.IC.CONVOY"]];
|
||||
sId["S-S-CD----"] = [icn["SE.IC.SEA SURFACE DECOY"]];
|
||||
sId["S-S-CU----"] = [icn["SE.IC.UNMANNED SURFACE WATER VEHICLE"]];
|
||||
sId["S-S-CUM---"] = [
|
||||
icn["SE.IC.UNMANNED SURFACE WATER VEHICLE"],
|
||||
icn["SE.M1.MINE COUNTERMEASURES"]
|
||||
];
|
||||
sId["S-S-CUS---"] = [
|
||||
icn["SE.IC.UNMANNED SURFACE WATER VEHICLE"],
|
||||
icn["SE.M1.ANTISUBMARINE WARFARE"]
|
||||
];
|
||||
sId["S-S-CUN---"] = [
|
||||
icn["SE.IC.UNMANNED SURFACE WATER VEHICLE"],
|
||||
icn["SE.M1.SURFACE WARFARE"]
|
||||
];
|
||||
sId["S-S-CUR---"] = [
|
||||
icn["SE.IC.UNMANNED SURFACE WATER VEHICLE"],
|
||||
icn["SE.M1.REMOTE MULTI-MISSION VEHIHLE"]
|
||||
];
|
||||
sId["S-S-N-----"] = [icn["SE.IC.NONCOMBATANT"]];
|
||||
sId["S-S-NR----"] = [icn["SE.IC.AUXILIARY SHIP"]];
|
||||
sId["S-S-NRA---"] = [icn["SE.IC.AMMUNITION SHIP"]];
|
||||
sId["S-S-NRO---"] = [icn["SE.IC.OILER, REPLENISHMENT"]];
|
||||
//1.X.4.2.2 Different SIDC listed let's support both
|
||||
sId["S-S-NF----"] = sId["S-S-NFT---"] = [icn["SE.IC.TUG, OCEAN GOING"]];
|
||||
sId["S-S-NI----"] = [icn["SE.IC.INTELLIGENCE COLLECTOR"]];
|
||||
sId["S-S-NM----"] = [icn["SE.IC.HOSPITAL SHIP"]];
|
||||
sId["S-S-NS----"] = [icn["SE.IC.SERVICE CRAFT, YARD, GENERAL"]];
|
||||
sId["S-S-NR----"] = [icn["SE.IC.REPAIR SHIP"]];
|
||||
sId["S-S-NTS---"] = [icn["SE.IC.SUBMARINE TENDER"]];
|
||||
sId["S-S-NH----"] = [icn["SE.IC.HOVERCRAFT NONCOMBATANT"]];
|
||||
//sId["S-S-NS----"] = [icn["SE.IC.TUG, HARBOUR"]];
|
||||
sId["S-S-X-----"] = []; // N/A
|
||||
sId["S-S-XM----"] = [icn["SE.IC.MERCHANT SHIP, GENERAL"]];
|
||||
sId["S-S-XMC---"] = [icn["SE.IC.CARGO, GENERAL"]];
|
||||
sId["S-S-XME---"] = sId["S-S-XMR---"] = [icn["SE.IC.ROLL ON-ROLL OFF"]];
|
||||
sId["S-S-XMO---"] = [icn["SE.IC.OILER/TANKER"]];
|
||||
sId["S-S-XMT---"] = sId["S-S-XMTU--"] = [
|
||||
icn["SE.IC.TUG, OCEAN GOING CIVILIAN"]
|
||||
];
|
||||
sId["S-S-XMF---"] = [icn["SE.IC.FERRY"]];
|
||||
sId["S-S-XMP---"] = [icn["SE.IC.PASSENGER SHIP"]];
|
||||
sId["S-S-XMH---"] = [icn["SE.IC.TRANSPORT SHIP, HAZARDOUS MATERIAL"]];
|
||||
sId["S-S-XMD---"] = [icn["SE.IC.DREDGE"]];
|
||||
sId["S-S-XMTO--"] = [icn["SE.IC.TOW"]];
|
||||
sId["S-S-XF----"] = [icn["SE.IC.FISHING VESSEL"]];
|
||||
sId["S-S-XFDF--"] = [icn["SE.IC.DRIFTER"]];
|
||||
sId["S-S-XFTR--"] = [icn["SE.IC.TRAWLER"]];
|
||||
sId["S-S-XFDR--"] = [icn["SE.IC.FISHING VESSEL DREDGE"]];
|
||||
sId["S-S-XR----"] = [icn["SE.IC.LEISURE CRAFT, SAILING BOAT"]];
|
||||
sId["S-S-XL----"] = [icn["SE.IC.LAW ENFORCEMENT VESSEL"]];
|
||||
sId["S-S-XH----"] = [icn["SE.IC.HOVERCRAFT CIVILIAN"]];
|
||||
sId["S-S-XA----"] = [icn["SE.IC.LEISURE CRAFT, MOTORIZED"]];
|
||||
sId["S-S-XAR---"] = [
|
||||
icn["SE.IC.LEISURE CRAFT, MOTORIZED, RIGID-HULL INFLATABLE BOAT"]
|
||||
];
|
||||
sId["S-S-XAS---"] = [icn["SE.IC.LEISURE CRAFT, MOTORIZED, SPEEDBOAT"]];
|
||||
sId["S-S-XP----"] = [icn["SE.IC.LEISURE CRAFT, JETSKI"]];
|
||||
sId["S-S-O-----"] = [icn["SE.IC.OWN SHIP"]];
|
||||
sId["S-S-E-----"] = []; // N/A
|
||||
sId["S-S-ED----"] = [icn["SE.IC.DITCHED AIRCRAFT"]];
|
||||
sId["S-S-EP----"] = [icn["SE.IC.PERSON IN WATER"]];
|
||||
sId["S-S-EV----"] = [icn["SE.IC.DISTRESSED VESSEL"]];
|
||||
sId["S-S-Z-----"] = []; // N/A
|
||||
sId["S-S-ZM----"] = [icn["SE.IC.SEA MINELIKE"]];
|
||||
sId["S-S-ZN----"] = [icn["SE.IC.NAVIGATIONAL"]];
|
||||
sId["S-S-ZI----"] = [icn["SE.IC.ICEBERG"]];
|
||||
}
|
||||
};
|
||||
486
node_modules/milsymbol/src/lettersidc/sidc/signalsIntelligence.js
generated
vendored
Normal file
@@ -0,0 +1,486 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import signalsintelligence from "../../iconparts/signals-intelligence.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [signalsintelligence],
|
||||
icons: function signalsIntelligence(sId, bbox, icn, _STD2525) {
|
||||
//Adds support for 2525C Signals Intelligence
|
||||
sId["I-P-S-----"] = []; // N/A
|
||||
sId["I-P-SC----"] = []; // N/A
|
||||
sId["I-P-SCD---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.DELTA"],
|
||||
icn["SI.M3.SPACE"]
|
||||
];
|
||||
sId["I-P-SR----"] = []; // N/A
|
||||
sId["I-P-SRD---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.DELTA"],
|
||||
icn["SI.M2.TANGO"],
|
||||
icn["SI.M3.SPACE"]
|
||||
];
|
||||
sId["I-P-SRE---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ECHO"],
|
||||
icn["SI.M2.SIERRA"],
|
||||
icn["SI.M3.SPACE"]
|
||||
];
|
||||
sId["I-P-SRI---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.INDY"],
|
||||
icn["SI.M2.FOXTROT"],
|
||||
icn["SI.M3.SPACE"]
|
||||
];
|
||||
sId["I-P-SRM---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.FOXTROT"],
|
||||
icn["SI.M3.SPACE"]
|
||||
];
|
||||
sId["I-P-SRT---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.ALPHA"],
|
||||
icn["SI.M3.SPACE"]
|
||||
];
|
||||
sId["I-P-SRS---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.PAPA"],
|
||||
icn["SI.M3.SPACE"]
|
||||
];
|
||||
sId["I-P-SRU---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.UNIFORM"],
|
||||
icn["SI.M2.NOVEMBER"],
|
||||
icn["SI.M3.SPACE"]
|
||||
];
|
||||
sId["I-A-S-----"] = []; // N/A
|
||||
sId["I-A-SC----"] = []; // N/A
|
||||
sId["I-A-SCC---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.CHARLIE"],
|
||||
icn["SI.M2.MIKE"]
|
||||
];
|
||||
sId["I-A-SCO---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.OSCAR"],
|
||||
icn["SI.M2.LIMA"]
|
||||
];
|
||||
sId["I-A-SCP---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.PAPA"],
|
||||
icn["SI.M2.PAPA"]
|
||||
];
|
||||
sId["I-A-SCS---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.UNIFORM"]
|
||||
];
|
||||
sId["I-A-SR----"] = []; // N/A
|
||||
sId["I-A-SRAI--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ALPHA"],
|
||||
icn["SI.M2.INDY"]
|
||||
];
|
||||
sId["I-A-SRAS--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ALPHA"],
|
||||
icn["SI.M2.BRAVO"]
|
||||
];
|
||||
sId["I-A-SRC---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.CHARLIE"],
|
||||
icn["SI.M2.INDY"]
|
||||
];
|
||||
sId["I-A-SRD---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.DELTA"],
|
||||
icn["SI.M2.TANGO"]
|
||||
];
|
||||
sId["I-A-SRE---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ECHO"],
|
||||
icn["SI.M2.WHISKEY"]
|
||||
];
|
||||
sId["I-A-SRF---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.FOXTROT"],
|
||||
icn["SI.M2.CHARLIE"]
|
||||
];
|
||||
sId["I-A-SRI---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.INDY"],
|
||||
icn["SI.M2.FOXTROT"]
|
||||
];
|
||||
sId["I-A-SRMA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.ALPHA"]
|
||||
];
|
||||
sId["I-A-SRMD--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.DELTA"]
|
||||
];
|
||||
sId["I-A-SRMG--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.GOLF"]
|
||||
];
|
||||
sId["I-A-SRMT--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.TANGO"]
|
||||
];
|
||||
sId["I-A-SRMF--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.FOXTROT"]
|
||||
];
|
||||
sId["I-A-SRTI--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.INDY"]
|
||||
];
|
||||
sId["I-A-SRTA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.ALPHA"]
|
||||
];
|
||||
sId["I-A-SRTT--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.TANGO"]
|
||||
];
|
||||
sId["I-A-SRU---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.UNIFORM"],
|
||||
icn["SI.M2.NOVEMBER"]
|
||||
];
|
||||
sId["I-G-S-----"] = []; // N/A
|
||||
sId["I-G-SC----"] = []; // N/A
|
||||
sId["I-G-SCC---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.CHARLIE"],
|
||||
icn["SI.M2.MIKE"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SCO---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.OSCAR"],
|
||||
icn["SI.M2.LIMA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SCP---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.PAPA"],
|
||||
icn["SI.M2.PAPA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SCS---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.UNIFORM"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SCT---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.SIERRA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SR----"] = []; // N/A
|
||||
sId["I-G-SRAT--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ALPHA"],
|
||||
icn["SI.M2.TANGO"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRAA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ALPHA"],
|
||||
icn["SI.M2.ALPHA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRB---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.BRAVO"],
|
||||
icn["SI.M2.SIERRA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRCS--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.CHARLIE"],
|
||||
icn["SI.M2.SIERRA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRCA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.CHARLIE"],
|
||||
icn["SI.M2.ALPHA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRD---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.DELTA"],
|
||||
icn["SI.M2.TANGO"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRE---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ECHO"],
|
||||
icn["SI.M2.WHISKEY"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRF---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.FOXTROT"],
|
||||
icn["SI.M2.CHARLIE"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRH---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.HOTEL"],
|
||||
icn["SI.M2.FOXTROT"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRI---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.INDY"],
|
||||
icn["SI.M2.FOXTROT"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRMM--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.ECHO"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRMA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.ALPHA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRMG--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.GOLF"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRMT--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.TANGO"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRMF--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.FOXTROT"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRS---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.TANGO"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRTA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.ALPHA"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRTI--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.INDY"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRTT--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.TANGO"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-G-SRU---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.UNIFORM"],
|
||||
icn["SI.M2.NOVEMBER"],
|
||||
icn["SI.M3.GROUND"]
|
||||
];
|
||||
sId["I-S-S-----"] = []; // N/A
|
||||
sId["I-S-SC----"] = []; // N/A
|
||||
sId["I-S-SCC---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.CHARLIE"],
|
||||
icn["SI.M2.MIKE"]
|
||||
];
|
||||
sId["I-S-SCO---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.OSCAR"],
|
||||
icn["SI.M2.LIMA"]
|
||||
];
|
||||
sId["I-S-SCP---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.PAPA"],
|
||||
icn["SI.M2.PAPA"]
|
||||
];
|
||||
sId["I-S-SCS---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.UNIFORM"]
|
||||
];
|
||||
sId["I-S-SR----"] = []; // N/A
|
||||
sId["I-S-SRAT--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ALPHA"],
|
||||
icn["SI.M2.TANGO"]
|
||||
];
|
||||
sId["I-S-SRAA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ALPHA"],
|
||||
icn["SI.M2.ALPHA"]
|
||||
];
|
||||
sId["I-S-SRCA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.CHARLIE"],
|
||||
icn["SI.M2.ALPHA"]
|
||||
];
|
||||
sId["I-S-SRCI--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.CHARLIE"],
|
||||
icn["SI.M2.INDY"]
|
||||
];
|
||||
sId["I-S-SRD---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.DELTA"],
|
||||
icn["SI.M2.TANGO"]
|
||||
];
|
||||
sId["I-S-SRE---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ECHO"],
|
||||
icn["SI.M2.WHISKEY"]
|
||||
];
|
||||
sId["I-S-SRF---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.FOXTROT"],
|
||||
icn["SI.M2.CHARLIE"]
|
||||
];
|
||||
sId["I-S-SRH---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.HOTEL"],
|
||||
icn["SI.M2.FOXTROT"]
|
||||
];
|
||||
sId["I-S-SRI---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.INDY"],
|
||||
icn["SI.M2.FOXTROT"]
|
||||
];
|
||||
sId["I-S-SRMM--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.ECHO"]
|
||||
];
|
||||
sId["I-S-SRMA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.ALPHA"]
|
||||
];
|
||||
sId["I-S-SRMG--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.GOLF"]
|
||||
];
|
||||
sId["I-S-SRMT--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.TANGO"]
|
||||
];
|
||||
sId["I-S-SRMF--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.FOXTROT"]
|
||||
];
|
||||
sId["I-S-SRS---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.SIERRA"]
|
||||
];
|
||||
sId["I-S-SRTA--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.ALPHA"]
|
||||
];
|
||||
sId["I-S-SRTI--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.INDY"]
|
||||
];
|
||||
sId["I-S-SRTT--"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.TANGO"]
|
||||
];
|
||||
sId["I-S-SRU---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.UNIFORM"],
|
||||
icn["SI.M2.NOVEMBER"]
|
||||
];
|
||||
sId["I-U-S-----"] = []; // N/A
|
||||
sId["I-U-SC----"] = []; // N/A
|
||||
sId["I-U-SCO---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.OSCAR"],
|
||||
icn["SI.M2.LIMA"]
|
||||
];
|
||||
sId["I-U-SCP---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.PAPA"],
|
||||
icn["SI.M2.PAPA"]
|
||||
];
|
||||
sId["I-U-SCS---"] = [
|
||||
icn["SI.IC.COMMUNICATIONS"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.UNIFORM"]
|
||||
];
|
||||
sId["I-U-SR----"] = []; // N/A
|
||||
sId["I-U-SRD---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.DELTA"],
|
||||
icn["SI.M2.TANGO"]
|
||||
];
|
||||
sId["I-U-SRE---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.ECHO"],
|
||||
icn["SI.M2.WHISKEY"]
|
||||
];
|
||||
sId["I-U-SRM---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.MIKE"],
|
||||
icn["SI.M2.FOXTROT"]
|
||||
];
|
||||
sId["I-U-SRS---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.SIERRA"],
|
||||
icn["SI.M2.SIERRA"]
|
||||
];
|
||||
sId["I-U-SRT---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.TANGO"],
|
||||
icn["SI.M2.ALPHA"]
|
||||
];
|
||||
sId["I-U-SRU---"] = [
|
||||
icn["SI.IC.RADAR"],
|
||||
icn["SI.M1.UNIFORM"],
|
||||
icn["SI.M2.NOVEMBER"]
|
||||
];
|
||||
}
|
||||
};
|
||||
137
node_modules/milsymbol/src/lettersidc/sidc/sof.js
generated
vendored
Normal file
@@ -0,0 +1,137 @@
|
||||
import { ms } from "../../ms.js";
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/ground.js";
|
||||
import icons_air from "../../iconparts/air.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons, icons_air],
|
||||
icons: function sof(sId, bbox, icn, _STD2525) {
|
||||
// SOF ===========================================================================
|
||||
sId["S-F-------"] = [icn["GR.IC.SPECIAL OPERATIONS FORCES"]];
|
||||
sId["S-F-A-----"] = [
|
||||
icn["AR.I.MILITARY ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-F-AF----"] = [
|
||||
icn["AR.I.MILITARY FIXED WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-F-AFA---"] = [
|
||||
icn["AR.I.MILITARY FIXED WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["SOF.M2.ATTACK"]
|
||||
];
|
||||
sId["S-F-AFK---"] = [
|
||||
icn["AR.I.MILITARY FIXED WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["SOF.M2.REFUEL"]
|
||||
];
|
||||
sId["S-F-AFU---"] = [
|
||||
icn["AR.I.MILITARY FIXED WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["SOF.M2.UTILITY"]
|
||||
];
|
||||
sId["S-F-AFUL--"] = [
|
||||
icn["AR.I.MILITARY FIXED WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["AIR.M2.LIGHT"]
|
||||
];
|
||||
sId["S-F-AFUM--"] = [
|
||||
icn["AR.I.MILITARY FIXED WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["AIR.M2.MEDIUM"]
|
||||
];
|
||||
sId["S-F-AFUH--"] = [
|
||||
icn["AR.I.MILITARY FIXED WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["AIR.M2.HEAVY"]
|
||||
];
|
||||
sId["S-F-AV----"] = [
|
||||
icn["AR.I.MILITARY FIXED WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["SOF.M2.VSTOL"]
|
||||
];
|
||||
sId["S-F-AH----"] = _STD2525
|
||||
? [
|
||||
icn["GR.IC.AVIATION ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["GR.IC.AVIATION ROTARY WING 2525C"]
|
||||
]
|
||||
: [
|
||||
icn["GR.IC.AVIATION ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-F-AHH---"] = [
|
||||
icn["GR.IC.AVIATION ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["SOF.M2.COMBAT SEARCH AND RESCUE"]
|
||||
];
|
||||
sId["S-F-AHA---"] = [
|
||||
icn["GR.IC.AVIATION ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["SOF.M2.ATTACK"]
|
||||
];
|
||||
sId["S-F-AHU---"] = [
|
||||
icn["GR.IC.AVIATION ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["SOF.M2.UTILITY"]
|
||||
];
|
||||
sId["S-F-AHUL--"] = [
|
||||
icn["GR.IC.AVIATION ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["AIR.M2.LIGHT"]
|
||||
];
|
||||
sId["S-F-AHUM--"] = [
|
||||
icn["GR.IC.AVIATION ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["AIR.M2.MEDIUM"]
|
||||
];
|
||||
sId["S-F-AHUH--"] = [
|
||||
icn["GR.IC.AVIATION ROTARY WING"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"],
|
||||
icn["AIR.M2.HEAVY"]
|
||||
];
|
||||
sId["S-F-SN----"] = sId["S-F-N-----"] = [
|
||||
icn["GR.IC.NAVAL"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-F-SNS---"] = sId["S-F-NS----"] = [icn["GR.IC.SEA-AIR-LAND"]];
|
||||
sId["S-F-SNU---"] = sId["S-F-NU----"] = [
|
||||
icn["SOF.IC.UNDERWATER DEMOLITION TEAM"]
|
||||
];
|
||||
sId["S-F-SNB---"] = sId["S-F-NB----"] = [
|
||||
icn["GR.IC.COMBATANT"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-F-SNN---"] = sId["S-F-NN----"] = [
|
||||
icn["GR.IC.SUBMARINE NUCLEAR PROPULSION"],
|
||||
icn["AIR.M1.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-F-G-----"] = [
|
||||
icn["GR.IC.FF.INFANTRY"],
|
||||
icn["GR.IC.SPECIAL OPERATIONS FORCES"]
|
||||
];
|
||||
sId["S-F-GS----"] = [icn["GR.IC.SPECIAL FORCES"]];
|
||||
sId["S-F-GR----"] = sId["S-F-GSR---"] = [
|
||||
icn["GR.IC.FF.INFANTRY"],
|
||||
icn["AIR.M1.RECONNAISSANCE"],
|
||||
icn["GR.M2.AIRBORNE"]
|
||||
];
|
||||
sId["S-F-GP----"] = sId["S-F-GSP---"] = [
|
||||
icn["GR.EQ.PSYCHOLOGICAL OPERATIONS EQUIPMENT"]
|
||||
];
|
||||
sId["S-F-GPA---"] = sId["S-F-GSPA--"] = [
|
||||
icn["GR.EQ.PSYCHOLOGICAL OPERATIONS EQUIPMENT"],
|
||||
ms._translate(0, -30, ms._scale(0.7, icn["AR.I.MILITARY FIXED WING"]))
|
||||
];
|
||||
sId["S-F-GC----"] = sId["S-F-GCA---"] = [icn["GR.IC.CIVIL AFFAIRS"]];
|
||||
sId["S-F-GB----"] = sId["S-F-B-----"] = [
|
||||
icn["GR.IC.SPECIAL OPERATIONS FORCES"],
|
||||
icn["GR.M2.SUPPORT"]
|
||||
];
|
||||
}
|
||||
};
|
||||
18
node_modules/milsymbol/src/lettersidc/sidc/space.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/space.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons],
|
||||
icons: function space(sId, bbox, icn, _STD2525) {
|
||||
// SPACE =========================================================================
|
||||
sId["S-P-------"] = [];
|
||||
sId["S-P-S-----"] = [icn["SP.I.FF.SATELLITE"]];
|
||||
sId["S-P-V-----"] = [icn["SP.I.FF.CREWED SPACE VEHICLE"]];
|
||||
sId["S-P-T-----"] = [icn["SP.I.FF.SPACE STATION"]];
|
||||
sId["S-P-L-----"] = [icn["SP.I.SPACE LAUNCH VEHICLE"]];
|
||||
}
|
||||
};
|
||||
118
node_modules/milsymbol/src/lettersidc/sidc/stabilityoperations.js
generated
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/ground.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons],
|
||||
icons: function stabilityoperations(sId, bbox, icn, _STD2525) {
|
||||
//Adds support for 2525C Stability Operations
|
||||
sId["O-V-A-----"] = [icn["ST.IC.ARSON/FIRE"]];
|
||||
sId["O-V-M-----"] = [icn["ST.IC.KILLING VICTIM"]];
|
||||
sId["O-V-MA----"] = [icn["ST.IC.KILLING VICTIM"], icn["ST.M1.MURDER"]];
|
||||
sId["O-V-MB----"] = [
|
||||
icn["ST.IC.KILLING VICTIM"],
|
||||
icn["ST.M1.EXECUTION (WRONGFUL KILLING)"]
|
||||
];
|
||||
sId["O-V-MC----"] = [
|
||||
icn["ST.IC.KILLING VICTIM"],
|
||||
icn["ST.M1.ASSASSINATION"]
|
||||
];
|
||||
sId["O-V-B-----"] = [icn["ST.IC.BOMB"]];
|
||||
sId["O-V-Y-----"] = [icn["ST.IC.BOOBY TRAP"]];
|
||||
sId["O-V-D-----"] = [icn["ST.IC.DRIVE-BY SHOOTING"]];
|
||||
sId["O-V-S-----"] = [icn["ST.IC.SNIPING"]];
|
||||
sId["O-V-P-----"] = [icn["ST.IC.POISONING"]];
|
||||
sId["O-V-E-----"] = [icn["ST.IC.EXPLOSION"]];
|
||||
sId["O-V-EI----"] = [icn["ST.IC.EXPLOSION"], icn["ST.IC.IED"]];
|
||||
sId["O-L-B-----"] = [icn["ST.IC.BLACK LIST LOCATION"]];
|
||||
sId["O-L-G-----"] = [icn["ST.IC.GRAY LIST LOCATION"]];
|
||||
sId["O-L-W-----"] = [icn["ST.IC.WHITE LIST LOCATION"]];
|
||||
sId["O-L-M-----"] = [icn["ST.IC.MASS GRAVE LOCATION"]];
|
||||
sId["O-O-P-----"] = [icn["ST.IC.PATROLLING"]];
|
||||
sId["O-O-R-----"] = []; // N/A
|
||||
sId["O-O-RW----"] = [icn["ST.IC.INDIVIDUAL"], icn["ST.M1.WILLING"]];
|
||||
sId["O-O-RC----"] = [
|
||||
icn["ST.IC.INDIVIDUAL"],
|
||||
icn["ST.M1.COERCED/IMPRESSED"]
|
||||
];
|
||||
sId["O-O-D-----"] = [icn["ST.IC.DEMONSTRATION"]];
|
||||
sId["O-O-M-----"] = [icn["ST.IC.MINE LAYING"]];
|
||||
sId["O-O-Y-----"] = [icn["ST.IC.PSYCHOLOGICAL OPERATIONS"]];
|
||||
sId["O-O-YT----"] = [
|
||||
icn["ST.IC.RADIO AND TELEVISION PSYCHOLOGICAL OPERATIONS"]
|
||||
];
|
||||
sId["O-O-YW----"] = [
|
||||
icn["ST.IC.PSYCHOLOGICAL OPERATIONS"],
|
||||
icn["ST.M1.WRITTEN PSYCHOLOGICAL OPERATIONS"]
|
||||
];
|
||||
sId["O-O-YH----"] = [
|
||||
icn["ST.IC.PSYCHOLOGICAL OPERATIONS"],
|
||||
icn["ST.M1.HOUSE-TO-HOUSE"]
|
||||
];
|
||||
sId["O-O-F-----"] = [icn["ST.IC.SEARCHING"]];
|
||||
sId["O-O-S-----"] = [icn["ST.IC.SPY"]];
|
||||
sId["O-O-O-----"] = [icn["ST.IC.FOOD DISTRIBUTION"]];
|
||||
sId["O-O-E-----"] = [icn["ST.IC.EXTORTION"]];
|
||||
sId["O-O-H-----"] = []; // N/A
|
||||
sId["O-O-HT----"] = [
|
||||
icn["ST.IC.KNOWN INSURGENT VEHICLE"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
];
|
||||
sId["O-O-HA----"] = [
|
||||
icn["ST.IC.HIJACKING (AIRPLANE)"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
];
|
||||
sId["O-O-HV----"] = [
|
||||
icn["ST.IC.HIJACKING (BOAT)"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
];
|
||||
sId["O-O-K-----"] = [icn["ST.IC.INDIVIDUAL"], icn["ST.M1.KIDNAPPING"]];
|
||||
sId["O-O-KA----"] = [
|
||||
icn["ST.IC.INDIVIDUAL"],
|
||||
icn["ST.M1.KIDNAPPING"],
|
||||
icn["ST.IC.ATTEMPTED CRIMINAL ACTIVITY"]
|
||||
];
|
||||
sId["O-O-A-----"] = [icn["ST.IC.ARREST"]];
|
||||
sId["O-O-U-----"] = [icn["ST.IC.DRUG RELATED ACTIVITIES"]];
|
||||
sId["O-O-C-----"] = [icn["ST.IC.COMPOSITE LOSS"]];
|
||||
sId["O-O-CA----"] = [icn["ST.IC.COMPOSITE LOSS"], icn["ST.M1.COMBAT"]];
|
||||
sId["O-O-CB----"] = [icn["ST.IC.COMPOSITE LOSS"], icn["ST.M1.ACCIDENT"]];
|
||||
sId["O-O-CC----"] = [icn["ST.IC.COMPOSITE LOSS"], icn["ST.M1.OTHER"]];
|
||||
sId["O-I-R-----"] = [icn["ST.IC.GROUP"]];
|
||||
sId["O-I-S-----"] = [icn["ST.IC.SAFE HOUSE"]];
|
||||
sId["O-I-G-----"] = [icn["ST.IC.GRAFFITI"]];
|
||||
sId["O-I-V-----"] = [icn["ST.IC.VANDALISM/LOOT/RANSACK/PLUNDER/SACK"]];
|
||||
sId["O-I-I-----"] = [icn["ST.IC.KNOWN INSURGENT VEHICLE"]];
|
||||
sId["O-I-D-----"] = [
|
||||
icn["ST.IC.KNOWN INSURGENT VEHICLE"],
|
||||
icn["ST.M1.DRUG"]
|
||||
];
|
||||
sId["O-I-F-----"] = [icn["ST.IC.INTERNAL SECURITY FORCE"]];
|
||||
sId["O-P-------"] = [icn["ST.IC.INDIVIDUAL"]];
|
||||
sId["O-P-A-----"] = [icn["ST.IC.INDIVIDUAL"], icn["ST.M1.LEADER"]];
|
||||
sId["O-P-B-----"] = [icn["ST.IC.INDIVIDUAL"], icn["ST.M1.TARGETED"]];
|
||||
sId["O-P-C-----"] = [icn["ST.IC.INDIVIDUAL"], icn["ST.M1.TERRORIST"]];
|
||||
sId["O-G-------"] = [icn["ST.IC.GROUP"]];
|
||||
sId["O-G-A-----"] = [
|
||||
icn["ST.IC.GROUP"],
|
||||
icn["ST.M1.DISPLACED PERSONS, REFUGEES, AND EVACUEES"]
|
||||
];
|
||||
sId["O-G-B-----"] = [
|
||||
icn["ST.IC.GROUP"],
|
||||
icn["ST.M1.NONGOVERNMENTAL ORGANIZATION (NGO)"]
|
||||
];
|
||||
sId["O-G-C-----"] = [icn["ST.IC.GROUP"], icn["ST.M1.TERRORIST"]];
|
||||
sId["O-G-D-----"] = [icn["ST.IC.GROUP"], icn["ST.M1.RELIGIOUS"]];
|
||||
sId["O-G-E-----"] = [icn["ST.IC.GROUP"], icn["ST.M1.FOREIGN FIGHTERS"]];
|
||||
sId["O-G-F-----"] = [icn["ST.IC.GROUP"], icn["ST.M1.GANG"]];
|
||||
sId["O-R-------"] = [icn["ST.IC.INDIVIDUAL"], icn["ST.M1.RAPE"]];
|
||||
sId["O-R-A-----"] = [
|
||||
icn["ST.IC.INDIVIDUAL"],
|
||||
icn["ST.M1.RAPE"],
|
||||
icn["ST.IC.ATTEMPTED CRIMINAL ACTIVITY"]
|
||||
];
|
||||
}
|
||||
};
|
||||
169
node_modules/milsymbol/src/lettersidc/sidc/subsurface.js
generated
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import icons from "../../iconparts/subsurface.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [icons],
|
||||
icons: function subsurface(sId, bbox, icn, _STD2525) {
|
||||
// SUBSURFACE ====================================================================
|
||||
sId["S-U-------"] = [];
|
||||
sId["S-U-S-----"] = [icn["SU.IC.SUBMARINE"]];
|
||||
sId["S-U-SF----"] = [icn["SU.IC.SUBMARINE, SURFACED"]];
|
||||
sId["S-U-SB----"] = [icn["SU.IC.SUBMARINE, BOTTOMED"]];
|
||||
sId["S-U-SR----"] = [icn["SU.IC.SUBMARINE"], icn["SU.M2.CERTSUB"]];
|
||||
sId["S-U-SX----"] = [icn["SU.IC.NON-SUBMARINE"]];
|
||||
sId["S-U-SN----"] = [icn["SU.IC.SUBMARINE NUCLEAR PROPULSION"]];
|
||||
sId["S-U-SNF---"] = [icn["SU.IC.SUBMARINE NUCLEAR PROPULSION, SURFACED"]];
|
||||
sId["S-U-SNA---"] = [
|
||||
icn["SU.IC.SUBMARINE NUCLEAR PROPULSION"],
|
||||
icn["SU.IC.SUBMARINE ATTACK (SSN)"]
|
||||
];
|
||||
sId["S-U-SNM---"] = [
|
||||
icn["SU.IC.SUBMARINE NUCLEAR PROPULSION"],
|
||||
icn["SU.IC.SUBMARINE MISSILE (TYPE UNKNOWN)"]
|
||||
];
|
||||
sId["S-U-SNG---"] = [
|
||||
icn["SU.IC.SUBMARINE NUCLEAR PROPULSION"],
|
||||
icn["SU.IC.SUBMARINE GUIDED MISSILE (SSGN)"]
|
||||
];
|
||||
sId["S-U-SNB---"] = [
|
||||
icn["SU.IC.SUBMARINE NUCLEAR PROPULSION"],
|
||||
icn["SU.IC.SUBMARINE BALLISTIC MISSILE (SSBN)"]
|
||||
];
|
||||
sId["S-U-SC----"] = [icn["SU.IC.SUBMARINE CONVENTIONAL PROPULSION"]];
|
||||
sId["S-U-SCF---"] = [
|
||||
icn["SU.IC.SUBMARINE CONVENTIONAL PROPULSION, SURFACED"]
|
||||
];
|
||||
sId["S-U-SCA---"] = [
|
||||
icn["SU.IC.SUBMARINE CONVENTIONAL PROPULSION"],
|
||||
icn["SU.IC.SUBMARINE ATTACK (SSN)"]
|
||||
];
|
||||
sId["S-U-SCM---"] = [
|
||||
icn["SU.IC.SUBMARINE CONVENTIONAL PROPULSION"],
|
||||
icn["SU.IC.SUBMARINE MISSILE (TYPE UNKNOWN)"]
|
||||
];
|
||||
sId["S-U-SCG---"] = [
|
||||
icn["SU.IC.SUBMARINE CONVENTIONAL PROPULSION"],
|
||||
icn["SU.IC.SUBMARINE GUIDED MISSILE (SSGN)"]
|
||||
];
|
||||
sId["S-U-SCB---"] = [
|
||||
icn["SU.IC.SUBMARINE CONVENTIONAL PROPULSION"],
|
||||
icn["SU.IC.SUBMARINE BALLISTIC MISSILE (SSBN)"]
|
||||
];
|
||||
sId["S-U-SO----"] = [icn["SU.IC.OTHER SUBMERSIBLE"]];
|
||||
sId["S-U-SOF---"] = [icn["SU.IC.OTHER SUBMERSIBLE, SURFACED"]];
|
||||
sId["S-U-SU----"] = [
|
||||
icn[
|
||||
"SU.IC.AUTONOMOUS UNDERWATER VEHICLE/ UNMANNED UNDERWATER VEHICLE (AUV/UUV)"
|
||||
]
|
||||
];
|
||||
sId["S-U-SUM---"] = [
|
||||
icn[
|
||||
"SU.IC.AUTONOMOUS UNDERWATER VEHICLE/ UNMANNED UNDERWATER VEHICLE (AUV/UUV)"
|
||||
],
|
||||
icn["SU.M1.MINE COUNTERMEASURES"]
|
||||
];
|
||||
sId["S-U-SUS---"] = [
|
||||
icn[
|
||||
"SU.IC.AUTONOMOUS UNDERWATER VEHICLE/ UNMANNED UNDERWATER VEHICLE (AUV/UUV)"
|
||||
],
|
||||
icn["SU.M1.ANTISUBMARINE WARFARE"]
|
||||
];
|
||||
sId["S-U-SUN---"] = [
|
||||
icn[
|
||||
"SU.IC.AUTONOMOUS UNDERWATER VEHICLE/ UNMANNED UNDERWATER VEHICLE (AUV/UUV)"
|
||||
],
|
||||
icn["SU.M1.SURFACE WARFARE"]
|
||||
];
|
||||
sId["S-U-S1----"] = [
|
||||
icn["SU.IC.SUBMARINE"],
|
||||
icn["SU.M2.POSSIBLE SUBMARINE - LOW 1"]
|
||||
];
|
||||
sId["S-U-S2----"] = [
|
||||
icn["SU.IC.SUBMARINE"],
|
||||
icn["SU.M2.POSSIBLE SUBMARINE - LOW 2"]
|
||||
];
|
||||
sId["S-U-S3----"] = [
|
||||
icn["SU.IC.SUBMARINE"],
|
||||
icn["SU.M2.POSSIBLE SUBMARINE - HIGH 3"]
|
||||
];
|
||||
sId["S-U-S4----"] = [
|
||||
icn["SU.IC.SUBMARINE"],
|
||||
icn["SU.M2.POSSIBLE SUBMARINE - HIGH 4"]
|
||||
];
|
||||
sId["S-U-SL----"] = [
|
||||
icn["SU.IC.SUBMARINE"],
|
||||
icn["SU.M2.PROBABLE SUBMARINE"]
|
||||
];
|
||||
sId["S-U-SK----"] = [icn["SU.IC.SUBMARINE, SNORKELING"]];
|
||||
sId["S-U-W-----"] = [icn["SU.IC.UNDERWATER WEAPON"]];
|
||||
sId["S-U-WT----"] = [icn["SU.IC.TORPEDO"]];
|
||||
sId["S-U-WM----"] = [icn["SU.IC.SEA MINE"]];
|
||||
sId["S-U-WMD---"] = [icn["SU.IC.SEA MINE NEUTRALIZED"]];
|
||||
sId["S-U-WMG---"] = [icn["SU.IC.SEA MINE - BOTTOM"]];
|
||||
sId["S-U-WMGD--"] = [icn["SU.IC.SEA MINE NEUTRALIZED - BOTTOM"]];
|
||||
sId["S-U-WMGX--"] = [icn["SU.IC.SEA MINE EXERCISE MINE - BOTTOM"]];
|
||||
sId["S-U-WMGE--"] = [icn["SU.IC.SEA MINE MILEC - BOTTOM"]];
|
||||
sId["S-U-WMGC--"] = [icn["SU.IC.SEA MINE MILCO - BOTTOM"]];
|
||||
sId["S-U-WMGR--"] = [icn["SU.IC.SEA MINE NEGATIVE REACQUISITION - BOTTOM"]];
|
||||
sId["S-U-WMGO--"] = [
|
||||
icn["SU.IC.SEA MINE NON-MINE MINE-LIKE CONTACT - BOTTOM"]
|
||||
];
|
||||
sId["S-U-WMM---"] = [icn["SU.IC.SEA MINE - MOORED"]];
|
||||
sId["S-U-WMMD--"] = [icn["SU.IC.SEA MINE NEUTRALIZED - MOORED"]];
|
||||
sId["S-U-WMMX--"] = [icn["SU.IC.SEA MINE EXERCISE MINE - MOORED"]];
|
||||
sId["S-U-WMME--"] = [icn["SU.IC.SEA MINE MILEC - MOORED"]];
|
||||
sId["S-U-WMMC--"] = [icn["SU.IC.SEA MINE MILCO - MOORED"]];
|
||||
sId["S-U-WMMR--"] = [icn["SU.IC.SEA MINE NEGATIVE REACQUISITION - MOORED"]];
|
||||
sId["S-U-WMMO--"] = [
|
||||
icn["SU.IC.SEA MINE NON-MINE MINE-LIKE CONTACT - MOORED"]
|
||||
];
|
||||
sId["S-U-WMF---"] = [icn["SU.IC.SEA MINE - FLOATING"]];
|
||||
sId["S-U-WMFD--"] = [icn["SU.IC.SEA MINE NEUTRALIZED - FLOATING"]];
|
||||
sId["S-U-WMFX--"] = [icn["SU.IC.SEA MINE EXERCISE MINE - FLOATING"]];
|
||||
sId["S-U-WMFE--"] = [icn["SU.IC.SEA MINE MILEC - FLOATING"]];
|
||||
sId["S-U-WMFC--"] = [icn["SU.IC.SEA MINE MILCO - FLOATING"]];
|
||||
sId["S-U-WMFR--"] = [
|
||||
icn["SU.IC.SEA MINE NEGATIVE REACQUISITION - FLOATING"]
|
||||
];
|
||||
sId["S-U-WMFO--"] = [
|
||||
icn["SU.IC.SEA MINE NON-MINE MINE-LIKE CONTACT - FLOATING"]
|
||||
];
|
||||
sId["S-U-WMO---"] = [icn["SU.IC.SEA MINE (IN OTHER POSITION)"]];
|
||||
sId["S-U-WMOD--"] = [icn["SU.IC.SEA MINE (IN OTHER POSITION) NEUTRALIZED"]];
|
||||
sId["S-U-WMX---"] = [icn["SU.IC.SEA MINE EXERCISE MINE"]];
|
||||
sId["S-U-WME---"] = [icn["SU.IC.SEA MINE MILEC"]];
|
||||
sId["S-U-WMA---"] = [icn["SU.IC.SEA MINE MINE ANCHOR"]];
|
||||
sId["S-U-WMC---"] = [icn["SU.IC.SEA MINE MILCO"]];
|
||||
sId["S-U-WMR---"] = [icn["SU.IC.SEA MINE NEGATIVE REACQUISITION"]];
|
||||
sId["S-U-WMB---"] = [icn["SU.IC.SEA MINE GENERAL OBSTRUCTOR"]];
|
||||
sId["S-U-WMBD--"] = [icn["SU.IC.SEA MINE GENERAL OBSTRUCTOR NEUTRALIZED"]];
|
||||
sId["S-U-WMN---"] = [icn["SU.IC.SEA MINE NON-MINE MINE-LIKE CONTACT"]];
|
||||
sId["S-U-WMS---"] = [icn["SU.IC.SEA MINE - RISING"]];
|
||||
sId["S-U-WMSX--"] = [icn["SU.IC.SEA MINE EXERCISE MINE - RISING"]];
|
||||
sId["S-U-WMSD--"] = [icn["SU.IC.SEA MINE NEUTRALIZED - RISING"]];
|
||||
sId["S-U-WV----"] = [
|
||||
icn[
|
||||
"SU.IC.AUTONOMOUS UNDERWATER VEHICLE/ UNMANNED UNDERWATER VEHICLE (AUV/UUV)"
|
||||
]
|
||||
];
|
||||
sId["S-U-WD----"] = [icn["SU.IC.UNDERWATER DECOY"]];
|
||||
sId["S-U-WDM---"] = [icn["SU.IC.SEA MINE DECOY"]];
|
||||
sId["S-U-WDMG--"] = [icn["SU.IC.SEA MINE DECOY, BOTTOM/GROUND"]];
|
||||
sId["S-U-WDMM--"] = [icn["SU.IC.SEA MINE DECOY, MOORED"]];
|
||||
sId["S-U-N-----"] = [icn["SU.IC.NON-SUBMARINE"]];
|
||||
sId["S-U-ND----"] = [icn["SU.IC.DIVER, CIVILIAN"]];
|
||||
sId["S-U-NB----"] = []; // N/A
|
||||
sId["S-U-E-----"] = [icn["SU.IC.ENVIRONMENTAL REPORT LOCATION"]];
|
||||
sId["S-U-V-----"] = [icn["SU.IC.DIVE REPORT LOCATION"]];
|
||||
sId["S-U-X-----"] = [icn["SU.IC.UNEXPLODED EXPLOSIVE ORDNANCE"]];
|
||||
sId["S-U-NBS---"] = [icn["SU.IC.SEABED INSTALLATION/MANMADE"]];
|
||||
sId["S-U-NBR---"] = [icn["SU.IC.SEABED ROCK/STONE, OBSTACLE, OTHER"]];
|
||||
sId["S-U-NBW---"] = [icn["SU.IC.WRECK"]];
|
||||
sId["S-U-NM----"] = [icn["SU.IC.MARINE LIFE"]];
|
||||
sId["S-U-NA----"] = [icn["SU.IC.SEA ANOMALY"]];
|
||||
}
|
||||
};
|
||||
393
node_modules/milsymbol/src/lettersidc/sidc/tactical-points-2525.js
generated
vendored
Normal file
@@ -0,0 +1,393 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import tacticalpoints from "../../iconparts/tactical-points.js";
|
||||
import labels from "../labels/tactical-points-2525.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [tacticalpoints],
|
||||
labels: labels,
|
||||
icons: function tacticalPoints(sidc, bbox, icn, std2525) {
|
||||
// Tactical Point Symbols =========================================================================
|
||||
sidc["G-T-D-----"] = icn["TP.DESTROY"]; //TACGRP.TSK.DSTY
|
||||
bbox["G-T-D-----"] = { x1: 0, x2: 200, y1: 40, y2: 160 };
|
||||
sidc["G-T-I-----"] = icn["TP.INTERDICT"]; //TACGRP.TSK.ITDT
|
||||
bbox["G-T-I-----"] = { x1: 0, x2: 200, y1: 40, y2: 160 };
|
||||
sidc["G-T-N-----"] = icn["TP.NEUTRALIZE"]; //TACGRP.TSK.NEUT
|
||||
bbox["G-T-N-----"] = { x1: 0, x2: 200, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPUUD-"] = icn["TP.DATUM"]; //TACGRP.C2GM.GNL.PNT.USW.UH2.DTM
|
||||
bbox["G-G-GPUUD-"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPUUB-"] = icn["TP.BRIEF CONTACT"]; //TACGRP.C2GM.GNL.PNT.USW.UH2.BCON
|
||||
bbox["G-G-GPUUB-"] = { x1: 50, x2: 150, y1: 0, y2: 100 };
|
||||
sidc["G-G-GPUUL-"] = icn["TP.LOST CONTACT"]; //TACGRP.C2GM.GNL.PNT.USW.UH2.LCON
|
||||
bbox["G-G-GPUUL-"] = { x1: 50, x2: 150, y1: 0, y2: 100 };
|
||||
sidc["G-G-GPUUS-"] = icn["TP.SINKER"]; //TACGRP.C2GM.GNL.PNT.USW.UH2.SNK
|
||||
bbox["G-G-GPUUS-"] = { x1: 50, x2: 150, y1: 0, y2: 100 };
|
||||
sidc["G-G-GPUY--"] = icn["TP.SONOBUOY"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY
|
||||
bbox["G-G-GPUY--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYP-"] = icn["TP.SONOBUOY PATTERN CENTER"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.PTNCTR
|
||||
bbox["G-G-GPUYP-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYD-"] = icn["TP.SONOBUOY DIFAR"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.DIFAR
|
||||
bbox["G-G-GPUYD-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYL-"] = icn["TP.SONOBUOY LOFAR"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.LOFAR
|
||||
bbox["G-G-GPUYL-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYC-"] = icn["TP.SONOBUOY CASS"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.CASS
|
||||
bbox["G-G-GPUYC-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYS-"] = icn["TP.SONOBUOY DICASS"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.DICASS
|
||||
bbox["G-G-GPUYS-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYB-"] = icn["TP.SONOBUOY BT"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.BT
|
||||
bbox["G-G-GPUYB-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYA-"] = icn["TP.SONOBUOY ANM"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.ANM
|
||||
bbox["G-G-GPUYA-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYV-"] = icn["TP.SONOBUOY VLAD"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.VLAD
|
||||
bbox["G-G-GPUYV-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYT-"] = icn["TP.SONOBUOY ATAC"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.ATAC
|
||||
bbox["G-G-GPUYT-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYR-"] = icn["TP.SONOBUOY RO"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.RO
|
||||
bbox["G-G-GPUYR-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYK-"] = icn["TP.SONOBUOY KINGPIN"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.KGP
|
||||
bbox["G-G-GPUYK-"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUYX-"] = icn["TP.SONOBUOY EXPIRED"]; //TACGRP.C2GM.GNL.PNT.USW.SNBY.EXP
|
||||
bbox["G-G-GPUYX-"] = { x1: 40, x2: 160, y1: -10, y2: 160 };
|
||||
sidc["G-G-GPUS--"] = icn["TP.SEARCH"]; //TACGRP.C2GM.GNL.PNT.USW.SRH
|
||||
bbox["G-G-GPUS--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPUSA-"] = icn["TP.SEARCH AREA"]; //TACGRP.C2GM.GNL.PNT.USW.SRH.ARA
|
||||
bbox["G-G-GPUSA-"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPUSD-"] = icn["TP.DIP POSITION"]; //TACGRP.C2GM.GNL.PNT.USW.SRH.DIPPSN
|
||||
bbox["G-G-GPUSD-"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPUSC-"] = icn["TP.SEARCH CENTER"]; //TACGRP.C2GM.GNL.PNT.USW.SRH.CTR
|
||||
bbox["G-G-GPUSC-"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPR---"] = icn["TP.REFERENCE POINT"]; //TACGRP.C2GM.GNL.PNT.REFPNT
|
||||
bbox["G-G-GPR---"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPRN--"] = icn["TP.NAVIGATIONAL REFERENCE"]; //TACGRP.C2GM.GNL.PNT.REFPNT.NAVREF
|
||||
bbox["G-G-GPRN--"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPRS--"] = icn["TP.SPECIAL POINT"]; //TACGRP.C2GM.GNL.PNT.REFPNT.SPLPNT
|
||||
bbox["G-G-GPRS--"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPRD--"] = icn["TP.DLRP"]; //TACGRP.C2GM.GNL.PNT.REFPNT.DLRP
|
||||
bbox["G-G-GPRD--"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPRP--"] = icn["TP.POINT OF INTENDED MOVEMENT"]; //TACGRP.C2GM.GNL.PNT.REFPNT.PIM
|
||||
bbox["G-G-GPRP--"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPRM--"] = icn["TP.MARSHALL POINT"]; //TACGRP.C2GM.GNL.PNT.REFPNT.MRSH
|
||||
bbox["G-G-GPRM--"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPRW--"] = icn["TP.REFERENCE POINT WAYPOINT"]; //TACGRP.C2GM.GNL.PNT.REFPNT.WAP
|
||||
bbox["G-G-GPRW--"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPRC--"] = icn["TP.CORRIDOR TAB"]; //TACGRP.C2GM.GNL.PNT.REFPNT.CRDRTB
|
||||
bbox["G-G-GPRC--"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPRI--"] = icn["TP.POINT OF INTEREST"]; //TACGRP.C2GM.GNL.PNT.REFPNT.PNTINR
|
||||
bbox["G-G-GPRI--"] = { x1: 50, x2: 150, y1: -25 };
|
||||
sidc["G-G-GPWA--"] = icn["TP.AIM POINT"]; //TACGRP.C2GM.GNL.PNT.WPN.AIMPNT
|
||||
bbox["G-G-GPWA--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPWD--"] = icn["TP.DROP POINT"]; //TACGRP.C2GM.GNL.PNT.WPN.DRPPNT
|
||||
bbox["G-G-GPWD--"] = { x1: 50, x2: 150, y1: 50, y2: 120 };
|
||||
sidc["G-G-GPWE--"] = icn["TP.ENTRY POINT"]; //TACGRP.C2GM.GNL.PNT.WPN.ENTPNT
|
||||
bbox["G-G-GPWE--"] = { x1: 50, x2: 150, y1: 50 };
|
||||
sidc["G-G-GPWG--"] = icn["TP.GROUND ZERO"]; //TACGRP.C2GM.GNL.PNT.WPN.GRDZRO
|
||||
bbox["G-G-GPWG--"] = { x1: 50, x2: 150, y1: 30 };
|
||||
sidc["G-G-GPWM--"] = icn["TP.MSL DETECT POINT"]; //TACGRP.C2GM.GNL.PNT.WPN.MSLPNT
|
||||
bbox["G-G-GPWM--"] = { x1: 50, x2: 150, y1: 30 };
|
||||
sidc["G-G-GPWI--"] = icn["TP.IMPACT POINT"]; //TACGRP.C2GM.GNL.PNT.WPN.IMTPNT
|
||||
bbox["G-G-GPWI--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPWP--"] = icn["TP.PREDICTED IMPACT POINT"]; //TACGRP.C2GM.GNL.PNT.WPN.PIPNT
|
||||
bbox["G-G-GPWP--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPF---"] = icn["TP.FORMATION"]; //TACGRP.C2GM.GNL.PNT.FRMN
|
||||
bbox["G-G-GPF---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPH---"] = icn["TP.HARBOR"]; //TACGRP.C2GM.GNL.PNT.HBR
|
||||
bbox["G-G-GPH---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPHQ--"] = icn["TP.HARBOR POINT Q"]; //TACGRP.C2GM.GNL.PNT.HBR.PNTQ
|
||||
bbox["G-G-GPHQ--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPHA--"] = icn["TP.HARBOR POINT A"]; //TACGRP.C2GM.GNL.PNT.HBR.PNTA
|
||||
bbox["G-G-GPHA--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPHY--"] = icn["TP.HARBOR POINT Y"]; //TACGRP.C2GM.GNL.PNT.HBR.PNTY
|
||||
bbox["G-G-GPHY--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPHX--"] = icn["TP.HARBOR POINT X"]; //TACGRP.C2GM.GNL.PNT.HBR.PNTX
|
||||
bbox["G-G-GPHX--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPO---"] = icn["TP.ROUTE"]; //TACGRP.C2GM.GNL.PNT.RTE
|
||||
bbox["G-G-GPO---"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPOZ--"] = icn["TP.ROUTE RENDEZVOUS"]; //TACGRP.C2GM.GNL.PNT.RTE.RDV
|
||||
bbox["G-G-GPOZ--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-G-GPOD--"] = icn["TP.ROUTE DIVERSIONS"]; //TACGRP.C2GM.GNL.PNT.RTE.DVSN
|
||||
bbox["G-G-GPOD--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-G-GPOW--"] = icn["TP.ROUTE WAYPOINT"]; //TACGRP.C2GM.GNL.PNT.RTE.WAP
|
||||
bbox["G-G-GPOW--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-G-GPOP--"] = icn["TP.ROUTE PIM"]; //TACGRP.C2GM.GNL.PNT.RTE.PIM
|
||||
bbox["G-G-GPOP--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-G-GPOR--"] = icn["TP.ROUTE POINT R"]; //TACGRP.C2GM.GNL.PNT.RTE.PNTR
|
||||
bbox["G-G-GPOR--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-G-GPA---"] = icn["TP.AIR CONTROL POINT"]; //TACGRP.C2GM.GNL.PNT.ACTL
|
||||
bbox["G-G-GPA---"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAP--"] = icn["TP.COMBAT AIR PATROL (CAP)"]; //TACGRP.C2GM.GNL.PNT.ACTL.CAP
|
||||
bbox["G-G-GPAP--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAW--"] = icn["TP.AIRBORNE EARLY WARNING (AEW)"]; //TACGRP.C2GM.GNL.PNT.ACTL.ABNEW
|
||||
bbox["G-G-GPAW--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAK--"] = icn["TP.TANKING"]; //TACGRP.C2GM.GNL.PNT.ACTL.TAK
|
||||
bbox["G-G-GPAK--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAA--"] = icn["TP.FIXED WING"]; //TACGRP.C2GM.GNL.PNT.ACTL.ASBWF
|
||||
bbox["G-G-GPAA--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAH--"] = icn["TP.ROTARY WING"]; //TACGRP.C2GM.GNL.PNT.ACTL.ASBWR
|
||||
bbox["G-G-GPAH--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAB--"] = icn["TP.SUCAP - FIXED WING"]; //TACGRP.C2GM.GNL.PNT.ACTL.SUWF
|
||||
bbox["G-G-GPAB--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAC--"] = icn["TP.SUCAP - ROTARY WING"]; //TACGRP.C2GM.GNL.PNT.ACTL.SUWR
|
||||
bbox["G-G-GPAC--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAD--"] = icn["TP.MIW - FIXED WING"]; //TACGRP.C2GM.GNL.PNT.ACTL.MIWF
|
||||
bbox["G-G-GPAD--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAE--"] = icn["TP.MIW - ROTARY WING"]; //TACGRP.C2GM.GNL.PNT.ACTL.MIWR
|
||||
bbox["G-G-GPAE--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-G-GPAS--"] = icn["TP.STRIKE IP"]; //TACGRP.C2GM.GNL.PNT.ACTL.SKEIP
|
||||
bbox["G-G-GPAS--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAT--"] = icn["TP.TACAN"]; //TACGRP.C2GM.GNL.PNT.ACTL.TCN
|
||||
bbox["G-G-GPAT--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAO--"] = icn["TP.TOMCAT"]; //TACGRP.C2GM.GNL.PNT.ACTL.TMC
|
||||
bbox["G-G-GPAO--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAR--"] = icn["TP.RESCUE"]; //TACGRP.C2GM.GNL.PNT.ACTL.RSC
|
||||
bbox["G-G-GPAR--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAL--"] = icn["TP.REPLENISH"]; //TACGRP.C2GM.GNL.PNT.ACTL.RPH
|
||||
bbox["G-G-GPAL--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAF--"] = icn["TP.UNMANNED AERIAL SYSTEM"]; //TACGRP.C2GM.GNL.PNT.ACTL.UA
|
||||
bbox["G-G-GPAF--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAG--"] = icn["TP.VTUA"]; //TACGRP.C2GM.GNL.PNT.ACTL.VTUA
|
||||
bbox["G-G-GPAG--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAI--"] = icn["TP.ORBIT"]; //TACGRP.C2GM.GNL.PNT.ACTL.ORB
|
||||
bbox["G-G-GPAI--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAJ--"] = icn["TP.ORBIT - FIGURE EIGHT"]; //TACGRP.C2GM.GNL.PNT.ACTL.ORBF8
|
||||
bbox["G-G-GPAJ--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAM--"] = icn["TP.ORBIT - RACE TRACK"]; //TACGRP.C2GM.GNL.PNT.ACTL.ORBRT
|
||||
bbox["G-G-GPAM--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPAN--"] = icn["TP.ORBIT - RANDOM, CLOSED"]; //TACGRP.C2GM.GNL.PNT.ACTL.ORBRD
|
||||
bbox["G-G-GPAN--"] = { x1: 60, x2: 140, y1: 30, y2: 170 };
|
||||
sidc["G-G-GPP---"] = icn["TP.ACTION POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT
|
||||
bbox["G-G-GPP---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-GPPK--"] = icn["TP.ACTION CHECK POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.CHKPNT
|
||||
bbox["G-G-GPPK--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-GPPC--"] = icn["TP.CONTACT POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.CONPNT
|
||||
bbox["G-G-GPPC--"] = { x1: 55, x2: 145, y1: -10 };
|
||||
sidc["G-G-GPPO--"] = icn["TP.COORDINATION POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.CRDPNT
|
||||
bbox["G-G-GPPO--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-GPPD--"] = icn["TP.DECISION POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.DCNPNT
|
||||
bbox["G-G-GPPD--"] = { x1: 30, x2: 170, y1: 25, y2: 160 };
|
||||
sidc["G-G-GPPL--"] = icn["TP.ACTION LINKUP POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.LNKUPT
|
||||
bbox["G-G-GPPL--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-GPPP--"] = icn["TP.ACTION PASSAGE POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.PSSPNT
|
||||
bbox["G-G-GPPP--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-GPPR--"] = icn["TP.ACTION RALLY POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.RAYPNT
|
||||
bbox["G-G-GPPR--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-GPPE--"] = icn["TP.ACTION RELEASE POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.RELPNT
|
||||
bbox["G-G-GPPE--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-GPPS--"] = icn["TP.ACTION START POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.STRPNT
|
||||
bbox["G-G-GPPS--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-GPPA--"] = icn["TP.ACTION AMNESTY POINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.AMNPNT
|
||||
bbox["G-G-GPPA--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-GPPW--"] = icn["TP.WAYPOINT"]; //TACGRP.C2GM.GNL.PNT.ACTPNT.WAP
|
||||
bbox["G-G-GPPW--"] = { x1: 60, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPC---"] = icn["TP.SEA SURFACE CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL
|
||||
bbox["G-G-GPC---"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCU--"] = icn["TP.(USV) CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.USV
|
||||
bbox["G-G-GPCU--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCUR-"] = icn["TP.(RMV) USV CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.USV.RMV
|
||||
bbox["G-G-GPCUR-"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCUA-"] = icn["TP.USV - ASW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.USV.ASW
|
||||
bbox["G-G-GPCUA-"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCUS-"] = icn["TP.USV - SUW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.USV.SUW
|
||||
bbox["G-G-GPCUS-"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCUM-"] = icn["TP.USV - MIW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.USV.MIW
|
||||
bbox["G-G-GPCUM-"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCA--"] = icn["TP.ASW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.ASW
|
||||
bbox["G-G-GPCA--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCS--"] = icn["TP.SUW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.SUW
|
||||
bbox["G-G-GPCS--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCM--"] = icn["TP.MIW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.MIW
|
||||
bbox["G-G-GPCM--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCP--"] = icn["TP.PICKET CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.PKT
|
||||
bbox["G-G-GPCP--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCR--"] = icn["TP.RENDEZVOUS CONTROL POINT"]; //TACGRP.C2GM.GNL.PNT.SCTL.RDV
|
||||
bbox["G-G-GPCR--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCC--"] = icn["TP.RESCUE CONTROL POINT"]; //TACGRP.C2GM.GNL.PNT.SCTL.RSC
|
||||
bbox["G-G-GPCC--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCE--"] = icn["TP.REPLENISHMENT CONTROL POINT"]; //TACGRP.C2GM.GNL.PNT.SCTL.REP
|
||||
bbox["G-G-GPCE--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPCN--"] = icn["TP.NONCOMBATANT CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.SCTL.NCBTT
|
||||
bbox["G-G-GPCN--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPB---"] = icn["TP.SUB SURFACE CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.UCTL
|
||||
bbox["G-G-GPB---"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPBU--"] = icn["TP.(UUV) CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.UCTL.UUV
|
||||
bbox["G-G-GPBU--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPBUA-"] = icn["TP.UUV - ASW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.UCTL.UUV.ASW
|
||||
bbox["G-G-GPBUA-"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPBUS-"] = icn["TP.UUV - SUW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.UCTL.UUV.SUW
|
||||
bbox["G-G-GPBUS-"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPBUM-"] = icn["TP.UUV - MIW CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.UCTL.UUV.MIW
|
||||
bbox["G-G-GPBUM-"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPBS--"] = icn["TP.SUBMARINE CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.UCTL.SBSTN
|
||||
bbox["G-G-GPBS--"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-GPBSA-"] = icn["TP.ASW SUBMARINE CONTROL STATION"]; //TACGRP.C2GM.GNL.PNT.UCTL.SBSTN.ASW
|
||||
bbox["G-G-GPBSA-"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-G-APP---"] = icn["TP.AIR CONTROL POINT (ACP)"]; //TACGRP.C2GM.AVN.PNT.ACP
|
||||
bbox["G-G-APP---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-APC---"] = icn["TP.COMMUNICATIONS CHECKPOINT"]; //TACGRP.C2GM.AVN.PNT.COMMCP
|
||||
bbox["G-G-APC---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-G-APU---"] = icn["TP.PULL-UP POINT"]; //TACGRP.C2GM.AVN.PNT.PUP
|
||||
bbox["G-G-APU---"] = { x1: 50, x2: 240, y1: 50, y2: 150 };
|
||||
sidc["G-G-APD---"] = icn["TP.DOWNED AIRCREW PICKUP POINT"]; //TACGRP.C2GM.AVN.PNT.DAPP
|
||||
bbox["G-G-APD---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-G-PN----"] = icn["TP.DUMMY MINEFIELD"]; //TACGRP.C2GM.DCPN.DMYMS
|
||||
bbox["G-G-PN----"] = { x1: 40, x2: 160, y1: -10, y2: 140 };
|
||||
sidc["G-G-DPT---"] = icn["TP.TARGET REFERENCE"]; //TACGRP.C2GM.DEF.PNT.TGTREF
|
||||
sidc["G-G-DPO---"] = icn["TP.OBSERVATION POST/OUTPOST"]; //TACGRP.C2GM.DEF.PNT.OBSPST
|
||||
bbox["G-G-DPO---"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-G-DPOC--"] = icn["TP.COMBAT OUTPOST"]; //TACGRP.C2GM.DEF.PNT.OBSPST.CBTPST
|
||||
bbox["G-G-DPOC--"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-G-DPOR--"] = icn["TP.OBSERVATION POST/RECONNAISSANCE"]; //TACGRP.C2GM.DEF.PNT.OBSPST.RECON
|
||||
bbox["G-G-DPOR--"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-G-DPOF--"] = icn["TP.FORWARD OBSERVER POSITION"]; //TACGRP.C2GM.DEF.PNT.OBSPST.FWDOP
|
||||
bbox["G-G-DPOF--"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-G-DPOS--"] = icn["TP.SENSOR OUTPOST"]; //TACGRP.C2GM.DEF.PNT.OBSPST.SOP
|
||||
bbox["G-G-DPOS--"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-G-DPON--"] = icn["TP.CBRN OBSERVATION POST"]; //TACGRP.C2GM.DEF.PNT.OBSPST.CBRNOP
|
||||
bbox["G-G-DPON--"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-G-OPP---"] = icn["TP.POINT OF DEPARTURE"]; //TACGRP.C2GM.OFF.PNT.PNTD
|
||||
bbox["G-G-OPP---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-M-OAOF--"] = icn["TP.FIXED AND PREFABRICATED"]; //TACGRP.MOBSU.OBST.ATO.TDTSM.FIXPFD
|
||||
bbox["G-M-OAOF--"] = { x1: 60, x2: 140, y1: 30 };
|
||||
sidc["G-M-OAOM--"] = icn["TP.TETRAHEDRONS"]; //TACGRP.MOBSU.OBST.ATO.TDTSM.MVB
|
||||
bbox["G-M-OAOM--"] = { x1: 60, x2: 140, y1: 30 };
|
||||
sidc["G-M-OAOP--"] = icn["TP.TETRAHEDRONS MOVABLE"]; //TACGRP.MOBSU.OBST.ATO.TDTSM.MVBPFD
|
||||
bbox["G-M-OAOP--"] = { x1: 60, x2: 140, y1: 30 };
|
||||
sidc["G-M-OB----"] = icn["TP.BOOBY TRAP"]; //TACGRP.MOBSU.OBST.BBY
|
||||
sidc["G-M-OMU---"] = icn["TP.UNSPECIFIED MINE"]; //TACGRP.MOBSU.OBST.MNE.USPMNE
|
||||
sidc["G-M-OMT---"] = icn["TP.ANTITANK MINE (AT)"]; //TACGRP.MOBSU.OBST.MNE.ATMNE
|
||||
sidc["G-M-OMD---"] = icn["TP.(AT) ANTIHANDLING DEVICE"]; //TACGRP.MOBSU.OBST.MNE.ATMAHD
|
||||
bbox["G-M-OMD---"] = { x1: 60, x2: 140, y1: 40, y2: 195 };
|
||||
sidc["G-M-OME---"] = icn["TP.(AT) DIRECTIONAL"]; //TACGRP.MOBSU.OBST.MNE.ATMDIR
|
||||
bbox["G-M-OME---"] = { x1: 60, x2: 140, y1: 10, y2: 140 };
|
||||
sidc["G-M-OMP---"] = icn["TP.ANTIPERSONNEL (AP) MINES"]; //TACGRP.MOBSU.OBST.MNE.APMNE
|
||||
sidc["G-M-OMW---"] = icn["TP.WIDE AREA MINES"]; //TACGRP.MOBSU.OBST.MNE.WAMNE
|
||||
sidc["G-M-OFS---"] = icn["TP.MINEFIELDS STATIC"]; //TACGRP.MOBSU.OBST.MNEFLD.STC
|
||||
bbox["G-M-OFS---"] = { x1: 40, x2: 160, y1: 60, y2: 140 };
|
||||
sidc["G-M-OHTL--"] = icn["TP.TOWER LOW"]; //TACGRP.MOBSU.OBST.AVN.TWR.LOW
|
||||
bbox["G-M-OHTL--"] = { x1: 50, x2: 150, y1: 30, y2: 120 };
|
||||
sidc["G-M-OHTH--"] = icn["TP.TOWER HIGH"]; //TACGRP.MOBSU.OBST.AVN.TWR.HIGH
|
||||
bbox["G-M-OHTH--"] = { x1: 50, x2: 150, y1: 30, y2: 120 };
|
||||
sidc["G-M-BCP---"] = icn["TP.ENGINEER REGULATING POINT"]; //TACGRP.MOBSU.OBSTBP.CSGSTE.ERP
|
||||
bbox["G-M-BCP---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-M-SE----"] = icn["TP.EARTHWORK/FORTIFICATION"]; //TACGRP.MOBSU.SU.ESTOF
|
||||
sidc["G-M-SF----"] = icn["TP.FORT"]; //TACGRP.MOBSU.SU.FRT
|
||||
sidc["G-M-SS----"] = icn["TP.SURFACE SHELTER"]; //TACGRP.MOBSU.SU.SUFSHL
|
||||
sidc["G-M-SU----"] = icn["TP.UNDERGROUND SHELTER"]; //TACGRP.MOBSU.SU.UGDSHL
|
||||
sidc["G-M-NZ----"] = icn["TP.NUCLEAR DETONATIONS GROUND ZERO"]; //TACGRP.MOBSU.CBRN.NDGZ
|
||||
bbox["G-M-NZ----"] = { x1: 60, x2: 140, y1: -20 };
|
||||
sidc["G-M-NF----"] = icn["TP.NUCLEAR FALLOUT PRODUCING"]; //TACGRP.MOBSU.CBRN.FAOTP
|
||||
bbox["G-M-NF----"] = { x1: 50, x2: 150, y1: -20 };
|
||||
sidc["G-M-NEB---"] = icn["TP.RELEASE EVENTS BIOLOGICAL"]; //TACGRP.MOBSU.CBRN.REEVNT.BIO
|
||||
bbox["G-M-NEB---"] = { x1: -10, x2: 140, y1: -20 };
|
||||
sidc["G-M-NEC---"] = icn["TP.RELEASE EVENTS CHEMICAL"]; //TACGRP.MOBSU.CBRN.REEVNT.CML
|
||||
bbox["G-M-NEC---"] = { x1: -20, x2: 140, y1: -20 };
|
||||
sidc["G-M-NDP---"] = icn["TP.DECON SITE/POINT"]; //TACGRP.MOBSU.CBRN.DECONP.USP
|
||||
bbox["G-M-NDP---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-M-NDA---"] = icn["TP.ALTERNATE DECON SITE/POINT"]; //TACGRP.MOBSU.CBRN.DECONP.ALTUSP
|
||||
bbox["G-M-NDA---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-M-NDT---"] = icn["TP.DECON SITE/POINT (TROOPS)"]; //TACGRP.MOBSU.CBRN.DECONP.TRP
|
||||
bbox["G-M-NDT---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-M-NDE---"] = icn["TP.DECON SITE/POINT (EQUIPMENT)"]; //TACGRP.MOBSU.CBRN.DECONP.EQT
|
||||
bbox["G-M-NDE---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-M-NDB---"] = icn["TP.DECON SITE/POINT (EQUIPMENT AND TROOPS)"]; //TACGRP.MOBSU.CBRN.DECONP.EQTTRP
|
||||
bbox["G-M-NDB---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-M-NDO---"] =
|
||||
icn["TP.DECON SITE/POINT (OPERATIONAL DECONTAMINATION)"]; //TACGRP.MOBSU.CBRN.DECONP.OPDECN
|
||||
bbox["G-M-NDO---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-M-NDD---"] = icn["TP.DECON SITE/POINT (THOROUGH DECONTAMINATION)"]; //TACGRP.MOBSU.CBRN.DECONP.TRGH
|
||||
bbox["G-M-NDD---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-F-PTS---"] = icn["TP.POINT/SINGLE TARGET"]; //TACGRP.FSUPP.PNT.TGT.PTGT
|
||||
sidc["G-F-PTN---"] = icn["TP.NUCLEAR TARGET"]; //TACGRP.FSUPP.PNT.TGT.NUCTGT
|
||||
sidc["G-F-PCF---"] = icn["TP.FIRE SUPPORT STATION"]; //TACGRP.FSUPP.PNT.C2PNT.FSS
|
||||
sidc["G-F-PCS---"] = icn["TP.SURVEY CONTROL POINT"]; //TACGRP.FSUPP.PNT.C2PNT.SCP
|
||||
bbox["G-F-PCS---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-F-PCB---"] = icn["TP.FIRING POINT"]; //TACGRP.FSUPP.PNT.C2PNT.FP
|
||||
bbox["G-F-PCB---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-F-PCR---"] = icn["TP.RELOAD POINT"]; //TACGRP.FSUPP.PNT.C2PNT.RP
|
||||
bbox["G-F-PCR---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-F-PCH---"] = icn["TP.HIDE POINT"]; //TACGRP.FSUPP.PNT.C2PNT.HP
|
||||
bbox["G-F-PCH---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-F-PCL---"] = icn["TP.LAUNCH POINT"]; //TACGRP.FSUPP.PNT.C2PNT.LP
|
||||
bbox["G-F-PCL---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PX----"] = icn["TP.AMBULANCE EXCHANGE POINT"]; //TACGRP.CSS.PNT.AEP
|
||||
bbox["G-S-PX----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PC----"] = icn["TP.CANNIBALIZATION POINT"]; //TACGRP.CSS.PNT.CBNP
|
||||
bbox["G-S-PC----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PY----"] = icn["TP.CASUALTY COLLECTION POINT"]; //TACGRP.CSS.PNT.CCP
|
||||
bbox["G-S-PY----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PT----"] = icn["TP.CIVILIAN COLLECTION POINT"]; //TACGRP.CSS.PNT.CVP
|
||||
bbox["G-S-PT----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PD----"] = icn["TP.DETAINEE COLLECTION POINT"]; //TACGRP.CSS.PNT.DCP
|
||||
bbox["G-S-PD----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PE----"] = icn["TP.EPW COLLECTION POINT"]; //TACGRP.CSS.PNT.EPWCP
|
||||
bbox["G-S-PE----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PL----"] = icn["TP.LOGISTICS RELEASE POINT"]; //TACGRP.CSS.PNT.LRP
|
||||
bbox["G-S-PL----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PM----"] = icn["TP.MAINTENANCE COLLECTION POINT"]; //TACGRP.CSS.PNT.MCP
|
||||
bbox["G-S-PM----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PR----"] = icn["TP.REARM, REFUEL AND RESUPPLY POINT"]; //TACGRP.CSS.PNT.RRRP
|
||||
bbox["G-S-PR----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PU----"] = icn["TP.REFUEL ON THE MOVE POINT"]; //TACGRP.CSS.PNT.ROM
|
||||
bbox["G-S-PU----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PO----"] = icn["TP.TRAFFIC CONTROL POST"]; //TACGRP.CSS.PNT.TCP
|
||||
bbox["G-S-PO----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PI----"] = icn["TP.TRAILER TRANSFER POINT"]; //TACGRP.CSS.PNT.TTP
|
||||
bbox["G-S-PI----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PN----"] = icn["TP.UNIT MAINTENANCE COLLECTION POINT"]; //TACGRP.CSS.PNT.UMC
|
||||
bbox["G-S-PN----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSZ---"] = icn["TP.SUPPLY POINT"]; //TACGRP.CSS.PNT.SPT.GNL
|
||||
bbox["G-S-PSZ---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSA---"] = icn["TP.SP CLASS I"]; //TACGRP.CSS.PNT.SPT.CLS1
|
||||
bbox["G-S-PSA---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSB---"] = icn["TP.SP CLASS II"]; //TACGRP.CSS.PNT.SPT.CLS2
|
||||
bbox["G-S-PSB---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSC---"] = icn["TP.SP CLASS III"]; //TACGRP.CSS.PNT.SPT.CLS3
|
||||
bbox["G-S-PSC---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSD---"] = icn["TP.SP CLASS IV"]; //TACGRP.CSS.PNT.SPT.CLS4
|
||||
bbox["G-S-PSD---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSE---"] = icn["TP.SP CLASS V"]; //TACGRP.CSS.PNT.SPT.CLS5
|
||||
bbox["G-S-PSE---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSF---"] = icn["TP.SP CLASS VI"]; //TACGRP.CSS.PNT.SPT.CLS6
|
||||
bbox["G-S-PSF---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSG---"] = icn["TP.SP CLASS VII"]; //TACGRP.CSS.PNT.SPT.CLS7
|
||||
bbox["G-S-PSG---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSH---"] = icn["TP.SP CLASS VIII"]; //TACGRP.CSS.PNT.SPT.CLS8
|
||||
bbox["G-S-PSH---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSI---"] = icn["TP.SP CLASS IX"]; //TACGRP.CSS.PNT.SPT.CLS9
|
||||
bbox["G-S-PSI---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PSJ---"] = icn["TP.SP CLASS X"]; //TACGRP.CSS.PNT.SPT.CLS10
|
||||
bbox["G-S-PSJ---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PAS---"] = icn["TP.AMMUNITION SUPPLY POINT (ASP)"]; //TACGRP.CSS.PNT.AP.ASP
|
||||
bbox["G-S-PAS---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-S-PAT---"] = icn["TP.AMMUNITION TRANSFER POINT (ATP)"]; //TACGRP.CSS.PNT.AP.ATP
|
||||
bbox["G-S-PAT---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-O-ED----"] = icn["TP.DITCHED AIRCRAFT"]; //TACGRP.OTH.ER.DTHAC
|
||||
sidc["G-O-EP----"] = icn["TP.PERSON IN WATER"]; //TACGRP.OTH.ER.PIW
|
||||
sidc["G-O-EV----"] = icn["TP.DISTRESSED VESSEL"]; //TACGRP.OTH.ER.DSTVES
|
||||
sidc["G-O-HM----"] = icn["TP.SEA MINELIKE"]; //TACGRP.OTH.HAZ.SML
|
||||
bbox["G-O-HM----"] = { x1: 40, x2: 160, y1: 40, y2: 150 };
|
||||
sidc["G-O-HI----"] = icn["TP.ICEBERG"]; //TACGRP.OTH.HAZ.IB
|
||||
bbox["G-O-HI----"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-O-HO----"] = icn["TP.OIL RIG/PLATFORM"]; //TACGRP.OTH.HAZ.OLRG
|
||||
bbox["G-O-HO----"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-O-SB----"] = icn["TP.BOTTOM RETURN"]; //TACGRP.OTH.SSUBSR.BTMRTN
|
||||
bbox["G-O-SB----"] = { x1: 40, x2: 160, y1: 40, y2: 100 };
|
||||
sidc["G-O-SBM---"] = icn["TP.INSTALLATION/MANMADE"]; //TACGRP.OTH.SSUBSR.BTMRTN.INS
|
||||
bbox["G-O-SBM---"] = { x1: 40, x2: 160, y1: 40, y2: 100 };
|
||||
sidc["G-O-SBN---"] = icn["TP.BOTTOM RETURN"]; //TACGRP.OTH.SSUBSR.BTMRTN.SBRSOO
|
||||
bbox["G-O-SBN---"] = { x1: 40, x2: 160, y1: 40, y2: 100 };
|
||||
sidc["G-O-SBW---"] = icn["TP.WRECK, NON DANGEROUS"]; //TACGRP.OTH.SSUBSR.BTMRTN.WRKND
|
||||
bbox["G-O-SBW---"] = { x1: 40, x2: 160, y1: 70, y2: 130 };
|
||||
sidc["G-O-SBX---"] = icn["TP.WRECK, DANGEROUS"]; //TACGRP.OTH.SSUBSR.BTMRTN.WRKD
|
||||
bbox["G-O-SBX---"] = { x1: 40, x2: 160, y1: 70, y2: 130 };
|
||||
sidc["G-O-SM----"] = icn["TP.MARINE LIFE"]; //TACGRP.OTH.SSUBSR.MARLFE
|
||||
bbox["G-O-SM----"] = { x1: 100, x2: 220, y1: 70, y2: 130 };
|
||||
sidc["G-O-SS----"] = icn["TP.SEA ANOMALY"]; //TACGRP.OTH.SSUBSR.SA
|
||||
bbox["G-O-SS----"] = { x1: 50, x2: 150, y1: 30, y2: 120 };
|
||||
sidc["G-O-FA----"] = icn["TP.FIX ACOUSTIC"]; //TACGRP.OTH.FIX.ACU
|
||||
sidc["G-O-FE----"] = icn["TP.FIX ELECTRO-MAGNETIC"]; //TACGRP.OTH.FIX.EM
|
||||
sidc["G-O-FO----"] = icn["TP.FIX ELECTRO-OPTICAL"]; //TACGRP.OTH.FIX.EOP
|
||||
}
|
||||
};
|
||||
392
node_modules/milsymbol/src/lettersidc/sidc/tactical-points-app6.js
generated
vendored
Normal file
@@ -0,0 +1,392 @@
|
||||
import { metadata as metadata_letter } from "../metadata.js";
|
||||
import { geticons as getIcons_letter } from "../geticons.js";
|
||||
import tacticalpoints from "../../iconparts/tactical-points.js";
|
||||
import labels from "../labels/tactical-points-app6.js";
|
||||
|
||||
export default {
|
||||
type: "letter",
|
||||
getMetadata: metadata_letter,
|
||||
getIcons: getIcons_letter,
|
||||
iconParts: [tacticalpoints],
|
||||
labels: labels,
|
||||
icons: function tacticalPoints(sidc, bbox, icn, std2525) {
|
||||
// Tactical Point Symbols =========================================================================
|
||||
sidc["G-T-GD----"] = icn["TP.DESTROY"]; //2.X.1.1.9
|
||||
bbox["G-T-GD----"] = { x1: 0, x2: 200, y1: 40, y2: 160 };
|
||||
sidc["G-T-GI----"] = icn["TP.INTERDICT"]; //2.X.1.1.13
|
||||
bbox["G-T-GI----"] = { x1: 0, x2: 200, y1: 40, y2: 160 };
|
||||
sidc["G-T-GN----"] = icn["TP.NEUTRALIZE"]; //2.X.1.1.15
|
||||
bbox["G-T-GN----"] = { x1: 0, x2: 200, y1: 40, y2: 160 };
|
||||
sidc["G-C-MGPFE-"] = icn["TP.FIX ELECTRO-MAGNETIC"]; //2.X.2.1.1.1.1.2
|
||||
sidc["G-C-MGPFA-"] = icn["TP.FIX ACOUSTIC"]; //2.X.2.1.1.1.1.2
|
||||
sidc["G-C-MGPFO-"] = icn["TP.FIX ELECTRO-OPTICAL"]; //2.X.2.1.1.1.1.3
|
||||
sidc["G-C-MGPI--"] = icn["TP.POINT OF INTEREST"]; //2.X.2.1.1.1.2
|
||||
bbox["G-C-MGPI--"] = { x1: 50, x2: 150, y1: -25 };
|
||||
sidc["G-C-MAAP--"] = icn["TP.AIR CONTROL POINT (ACP)"]; //2.X.2.1.2.1.1
|
||||
bbox["G-C-MAAP--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-MAAC--"] = icn["TP.COMMUNICATIONS CHECKPOINT"]; //2.X.2.1.2.1.2
|
||||
bbox["G-C-MAAC--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-MAAU--"] = icn["TP.PULL-UP POINT"]; //2.X.2.1.2.1.3
|
||||
bbox["G-C-MAAU--"] = { x1: 50, x2: 240, y1: 50, y2: 150 };
|
||||
sidc["G-C-MAAD--"] = icn["TP.DOWNED AIRCREW PICKUP POINT"]; //2.X.2.1.2.1.4
|
||||
bbox["G-C-MAAD--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-MDN---"] = icn["TP.DUMMY MINEFIELD"]; //2.X.2.1.3.6
|
||||
bbox["G-C-MDN---"] = { x1: 40, x2: 160, y1: -10, y2: 140 };
|
||||
sidc["G-C-MMPT--"] = icn["TP.TARGET REFERENCE"]; //2.X.2.1.4.1.1
|
||||
sidc["G-C-MMPO--"] = icn["TP.OBSERVATION POST/OUTPOST"]; //2.X.2.1.4.1.4
|
||||
bbox["G-C-MMPO--"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-C-MMPOC-"] = icn["TP.COMBAT OUTPOST"]; //2.X.2.1.4.1.4.1
|
||||
bbox["G-C-MMPOC-"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-C-MMPOR-"] = icn["TP.OBSERVATION POST/RECONNAISSANCE"]; //2.X.2.1.4.1.4.2
|
||||
bbox["G-C-MMPOR-"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-C-MMPOF-"] = icn["TP.FORWARD OBSERVER POSITION"]; //2.X.2.1.4.1.4.3
|
||||
bbox["G-C-MMPOF-"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-C-MMPOS-"] = icn["TP.SENSOR OUTPOST"]; //2.X.2.1.4.1.4.4
|
||||
bbox["G-C-MMPOS-"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
sidc["G-C-MMPON-"] = icn["TP.CBRN OBSERVATION POST"]; //2.X.2.1.4.1.4.5
|
||||
bbox["G-C-MMPON-"] = { x1: 50, x2: 150, y1: 40, y2: 150 };
|
||||
// Go home APP6 you are drunk sidc['G-C-MMPON-'] = [];//2.X.2.1.4.1.4.6
|
||||
// Go home APP6 you are drunk sidc['G-C-MMPON-'] = [];//2.X.2.1.4.1.4.7
|
||||
sidc["G-C-MOPD--"] = icn["TP.POINT OF DEPARTURE"]; //2.X.2.1.5.1.1
|
||||
bbox["G-C-MOPD--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BOATD-"] = icn["TP.FIXED AND PREFABRICATED"]; //2.X.2.2.1.3.3
|
||||
bbox["G-C-BOATD-"] = { x1: 60, x2: 140, y1: 30 };
|
||||
sidc["G-C-BOAB--"] = icn["TP.BOOBY TRAP"]; //2.X.2.2.1.4
|
||||
sidc["G-C-BOAMA-"] = icn["TP.ANTIPERSONNEL (AP) MINES"]; //2.X.2.2.1.5.1
|
||||
sidc["G-C-BOAMT-"] = icn["TP.ANTITANK MINE (AT)"]; //2.X.2.2.1.5.2
|
||||
sidc["G-C-BOAMD-"] = icn["TP.(AT) ANTIHANDLING DEVICE"]; //2.X.2.2.1.5.3
|
||||
bbox["G-C-BOAMD-"] = { x1: 60, x2: 140, y1: 40, y2: 195 };
|
||||
sidc["G-C-BOAMC-"] = icn["TP.(AT) DIRECTIONAL"]; //2.X.2.2.1.5.4
|
||||
bbox["G-C-BOAMC-"] = { x1: 60, x2: 140, y1: 10, y2: 140 };
|
||||
sidc["G-C-BOAMU-"] = icn["TP.UNSPECIFIED MINE"]; //2.X.2.2.1.5.5
|
||||
sidc["G-C-BOAMW-"] = icn["TP.WIDE AREA MINES"]; //2.X.2.2.1.5.7
|
||||
sidc["G-C-BOAIP-"] = icn["TP.PLANNED MINEFIELD"]; //2.X.2.2.1.6.1
|
||||
bbox["G-C-BOAIP-"] = { x1: 40, x2: 160, y1: 60, y2: 140 };
|
||||
sidc["G-C-BOAIC-"] = icn["TP.MINEFIELDS STATIC"]; //2.X.2.2.1.6.2
|
||||
bbox["G-C-BOAIC-"] = { x1: 40, x2: 160, y1: 60, y2: 140 };
|
||||
sidc["G-C-BOAIN-"] = icn["TP.ANTITANK (AT) MINEFIELD"]; //2.X.2.2.1.6.5
|
||||
bbox["G-C-BOAIN-"] = { x1: 40, x2: 160, y1: 60, y2: 140 };
|
||||
sidc["G-C-BOAIS-"] = icn["TP.SCATTERABLE MINES"]; //2.X.2.2.1.6.6
|
||||
bbox["G-C-BOAIS-"] = { x1: 40, x2: 160, y1: 20, y2: 140 };
|
||||
sidc["G-C-BOAIH-"] = icn["TP.ANTIPERSONNEL (AP) MINEFIELD"]; //2.X.2.2.1.6.7 ANTIPERSONNEL (AP) MINEFIELD REINFORCED WITH SCATTERABLE WITH SELF-DESTRUCT DATE-TIME-GROUP
|
||||
bbox["G-C-BOAIH-"] = { x1: 40, x2: 160, y1: 20, y2: 140 };
|
||||
sidc["G-C-BOAID-"] = icn["TP.SCATTERABLE MINEFIELD WITH SELF-DESTRUCT"]; //2.X.2.2.1.6.8 SCATTERABLE MINEFIELD WITH SELF-DESTRUCT DATE-TIME-GROUP
|
||||
bbox["G-C-BOAID-"] = { x1: 40, x2: 160, y1: 20, y2: 140 };
|
||||
sidc["G-C-BOAV--"] = icn["TP.VOLCANO MINEFIELD"]; //2.X.2.2.1.7
|
||||
bbox["G-C-BOAV--"] = { x1: 40, x2: 160, y1: 20, y2: 140 };
|
||||
sidc["G-C-BYCG--"] = icn["TP.ENGINEER REGULATING POINT"]; //2.X.2.2.2.2.8
|
||||
bbox["G-C-BYCG--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BSE---"] = icn["TP.EARTHWORK/FORTIFICATION"]; //2.X.2.2.3.1
|
||||
sidc["G-C-BSF---"] = icn["TP.FORT"]; //2.X.2.2.3.2
|
||||
sidc["G-C-BSH---"] = icn["TP.SURFACE SHELTER"]; //2.X.2.2.3.6
|
||||
sidc["G-C-BSU---"] = icn["TP.UNDERGROUND SHELTER"]; //2.X.2.2.3.7
|
||||
sidc["G-C-BWN---"] = icn["TP.NUCLEAR DETONATIONS GROUND ZERO"]; //2.X.2.2.4.2
|
||||
bbox["G-C-BWN---"] = { x1: 60, x2: 140, y1: -20 };
|
||||
sidc["G-C-BWE---"] = icn["TP.NUCLEAR DETONATIONS GROUND ZERO"]; //2.X.2.2.4.2
|
||||
bbox["G-C-BWE---"] = { x1: 60, x2: 140, y1: -20 };
|
||||
sidc["G-C-BWI---"] = icn["TP.NUCLEAR DETONATIONS GROUND ZERO PLANNED"]; //2.X.2.2.4.4
|
||||
bbox["G-C-BWI---"] = { x1: 60, x2: 140, y1: -20 };
|
||||
sidc["G-C-BWF---"] = icn["TP.NUCLEAR DETONATIONS GROUND ZERO PLANNED"]; //2.X.2.2.4.5
|
||||
bbox["G-C-BWF---"] = { x1: 60, x2: 140, y1: -20 };
|
||||
sidc["G-C-BWP---"] = icn["TP.NUCLEAR FALLOUT PRODUCING"]; //2.X.2.2.4.6
|
||||
bbox["G-C-BWP---"] = { x1: 50, x2: 150, y1: -20 };
|
||||
sidc["G-C-BWDP--"] = icn["TP.DECON SITE/POINT"]; //2.X.2.2.4.11.1
|
||||
bbox["G-C-BWDP--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BWDA--"] = icn["TP.ALTERNATE DECON SITE/POINT"]; //2.X.2.2.4.11.2
|
||||
bbox["G-C-BWDA--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BWDT--"] = icn["TP.DECON SITE/POINT (TROOPS)"]; //2.X.2.2.4.11.3
|
||||
bbox["G-C-BWDT--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BWDE--"] = icn["TP.DECON SITE/POINT (EQUIPMENT)"]; //2.X.2.2.4.11.4
|
||||
bbox["G-C-BWDE--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BWDS--"] = icn["TP.DECON SITE/POINT (EQUIPMENT AND TROOPS)"]; //2.X.2.2.4.11.5
|
||||
bbox["G-C-BWDS--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BWDO--"] =
|
||||
icn["TP.DECON SITE/POINT (OPERATIONAL DECONTAMINATION)"]; //2.X.2.2.4.11.6
|
||||
bbox["G-C-BWDO--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BWDG--"] = icn["TP.DECON SITE/POINT (THOROUGH DECONTAMINATION)"]; //2.X.2.2.4.11.7
|
||||
bbox["G-C-BWDG--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BWDEM-"] = icn["TP.DECON POINT (MAIN) EQUIPMENT"]; //2.X.2.2.4.11.8
|
||||
bbox["G-C-BWDEM-"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-BWDTF-"] = icn["TP.DECON POINT (FORWARD) TROOPS"]; //2.X.2.2.4.11.9
|
||||
bbox["G-C-BWDTF-"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-FSTP--"] = icn["TP.POINT/SINGLE TARGET"]; //2.X.2.3.1.1.1
|
||||
sidc["G-C-FSS---"] = icn["TP.FIRE SUPPORT STATION"]; //2.X.2.3.1.2
|
||||
sidc["G-C-FAU---"] = icn["TP.NUCLEAR TARGET"]; //2.X.2.3.3.9
|
||||
sidc["G-C-SPA---"] = icn["TP.AMBULANCE EXCHANGE POINT"]; //2.X.2.4.1.1
|
||||
bbox["G-C-SPA---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPC---"] = icn["TP.CANNIBALIZATION POINT"]; //2.X.2.4.1.2
|
||||
bbox["G-C-SPC---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPY---"] = icn["TP.CASUALTY COLLECTION POINT"]; //2.X.2.4.1.3
|
||||
bbox["G-C-SPY---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPT---"] = icn["TP.CIVILIAN COLLECTION POINT"]; //2.X.2.4.1.4
|
||||
bbox["G-C-SPT---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPD---"] = icn["TP.DETAINEE COLLECTION POINT"]; //2.X.2.4.1.5
|
||||
bbox["G-C-SPD---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPE---"] = icn["TP.EPW COLLECTION POINT"]; //2.X.2.4.1.6
|
||||
bbox["G-C-SPE---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPL---"] = icn["TP.LOGISTICS RELEASE POINT"]; //2.X.2.4.1.7
|
||||
bbox["G-C-SPL---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPM---"] = icn["TP.MAINTENANCE COLLECTION POINT"]; //2.X.2.4.1.8
|
||||
bbox["G-C-SPM---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPR---"] = icn["TP.REARM, REFUEL AND RESUPPLY POINT"]; //2.X.2.4.1.9
|
||||
bbox["G-C-SPR---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPU---"] = icn["TP.REFUEL ON THE MOVE POINT"]; //2.X.2.4.1.10
|
||||
bbox["G-C-SPU---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPO---"] = icn["TP.TRAFFIC CONTROL POST"]; //2.X.2.4.1.11
|
||||
bbox["G-C-SPO---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPI---"] = icn["TP.TRAILER TRANSFER POINT"]; //2.X.2.4.1.12
|
||||
bbox["G-C-SPI---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPN---"] = icn["TP.UNIT MAINTENANCE COLLECTION POINT"]; //2.X.2.4.1.13
|
||||
bbox["G-C-SPN---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQT--"] = icn["TP.SUPPLY POINT"]; //2.X.2.4.1.14.1
|
||||
bbox["G-C-SPQT--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQA--"] = icn["TP.SP CLASS I"]; //2.X.2.4.1.14.2
|
||||
bbox["G-C-SPQA--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQB--"] = icn["TP.SP CLASS II"]; //2.X.2.4.1.14.3
|
||||
bbox["G-C-SPQB--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQC--"] = icn["TP.SP CLASS III"]; //2.X.2.4.1.14.4
|
||||
bbox["G-C-SPQC--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQD--"] = icn["TP.SP CLASS IV"]; //2.X.2.4.1.14.5
|
||||
bbox["G-C-SPQD--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQE--"] = icn["TP.SP CLASS V"]; //2.X.2.4.1.14.6
|
||||
bbox["G-C-SPQE--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQF--"] = icn["TP.SP CLASS VI"]; //2.X.2.4.1.14.7
|
||||
bbox["G-C-SPQF--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQG--"] = icn["TP.SP CLASS VII"]; //2.X.2.4.1.14.8
|
||||
bbox["G-C-SPQG--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQH--"] = icn["TP.SP CLASS VIII"]; //2.X.2.4.1.14.9
|
||||
bbox["G-C-SPQH--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQI--"] = icn["TP.SP CLASS IX"]; //2.X.2.4.1.14.10
|
||||
bbox["G-C-SPQI--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPQJ--"] = icn["TP.SP CLASS X"]; //2.X.2.4.1.14.11
|
||||
bbox["G-C-SPQJ--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPMA--"] = icn["TP.AMMUNITION SUPPLY POINT (ASP)"]; //2.X.2.4.1.15.1
|
||||
bbox["G-C-SPMA--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-SPMT--"] = icn["TP.AMMUNITION TRANSFER POINT (ATP)"]; //2.X.2.4.1.15.2
|
||||
bbox["G-C-SPMT--"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-OX----"] = icn["TP.SPECIAL POINT"]; //2.X.2.5.1
|
||||
bbox["G-C-OX----"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXRN--"] = icn["TP.NAVIGATIONAL REFERENCE"]; //2.X.2.5.1.1.1
|
||||
bbox["G-C-OXRN--"] = { x1: 40, x2: 160, y1: 40, y2: 160 };
|
||||
// Go home APP6 you are drunk sidc['G-C-OXRD--'] = [];//2.X.2.5.1.1.2 WRONG SIDC IN STANDARD
|
||||
sidc["G-C-OXUD--"] = icn["TP.DATUM"]; //2.X.2.5.1.2.1
|
||||
bbox["G-C-OXUD--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXUB--"] = icn["TP.BRIEF CONTACT"]; //2.X.2.5.1.2.2
|
||||
bbox["G-C-OXUB--"] = { x1: 50, x2: 150, y1: 0, y2: 100 };
|
||||
sidc["G-C-OXUL--"] = icn["TP.LOST CONTACT"]; //2.X.2.5.1.2.3
|
||||
bbox["G-C-OXUL--"] = { x1: 50, x2: 150, y1: 0, y2: 100 };
|
||||
sidc["G-C-OXUS--"] = icn["TP.SINKER"]; //2.X.2.5.1.2.4
|
||||
bbox["G-C-OXUS--"] = { x1: 50, x2: 150, y1: 0, y2: 100 };
|
||||
sidc["G-C-OXWA--"] = icn["TP.AIM POINT"]; //2.X.2.5.1.3.1
|
||||
bbox["G-C-OXWA--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXWD--"] = icn["TP.DROP POINT"]; //2.X.2.5.1.3.2
|
||||
bbox["G-C-OXWD--"] = { x1: 50, x2: 150, y1: 50, y2: 120 };
|
||||
sidc["G-C-OXWE--"] = icn["TP.ENTRY POINT"]; //2.X.2.5.1.3.3
|
||||
bbox["G-C-OXWE--"] = { x1: 50, x2: 150, y1: 50 };
|
||||
sidc["G-C-OXWG--"] = icn["TP.GROUND ZERO"]; //2.X.2.5.1.3.4
|
||||
bbox["G-C-OXWG--"] = { x1: 50, x2: 150, y1: 30 };
|
||||
sidc["G-C-OXWM--"] = icn["TP.MSL DETECT POINT"]; //2.X.2.5.1.3.5
|
||||
bbox["G-C-OXWM--"] = { x1: 50, x2: 150, y1: 30 };
|
||||
sidc["G-C-OXWI--"] = icn["TP.IMPACT POINT"]; //2.X.2.5.1.3.6
|
||||
bbox["G-C-OXWI--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXWP--"] = icn["TP.PREDICTED IMPACT POINT"]; //2.X.2.5.1.3.7
|
||||
bbox["G-C-OXWP--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXY---"] = icn["TP.SONOBUOY"]; //2.X.2.5.1.4
|
||||
bbox["G-C-OXY---"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYP--"] = icn["TP.SONOBUOY PATTERN CENTER"]; //2.X.2.5.1.4.1
|
||||
bbox["G-C-OXYP--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYD--"] = icn["TP.SONOBUOY DIFAR"]; //2.X.2.5.1.4.2
|
||||
bbox["G-C-OXYD--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYL--"] = icn["TP.SONOBUOY LOFAR"]; //2.X.2.5.1.4.3
|
||||
bbox["G-C-OXYL--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYC--"] = icn["TP.SONOBUOY CASS"]; //2.X.2.5.1.4.4
|
||||
bbox["G-C-OXYC--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYS--"] = icn["TP.SONOBUOY DICASS"]; //2.X.2.5.1.4.5
|
||||
bbox["G-C-OXYS--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYB--"] = icn["TP.SONOBUOY BT"]; //2.X.2.5.1.4.6
|
||||
bbox["G-C-OXYB--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYA--"] = icn["TP.SONOBUOY ANM"]; //2.X.2.5.1.4.7
|
||||
bbox["G-C-OXYA--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYV--"] = icn["TP.SONOBUOY VLAD"]; //2.X.2.5.1.4.8
|
||||
bbox["G-C-OXYV--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYT--"] = icn["TP.SONOBUOY ATAC"]; //2.X.2.5.1.4.9
|
||||
bbox["G-C-OXYT--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYR--"] = icn["TP.SONOBUOY RO"]; //2.X.2.5.1.4.10
|
||||
bbox["G-C-OXYR--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXYK--"] = icn["TP.SONOBUOY KINGPIN"]; //2.X.2.5.1.4.11
|
||||
bbox["G-C-OXYK--"] = { x1: 60, x2: 140, y1: -10, y2: 160 };
|
||||
sidc["G-C-OXN---"] = icn["TP.FORMATION"]; //2.X.2.5.1.5
|
||||
bbox["G-C-OXN---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXH---"] = icn["TP.HARBOR"]; //2.X.2.5.1.6
|
||||
bbox["G-C-OXH---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXHQ--"] = icn["TP.HARBOR POINT Q"]; //2.X.2.5.1.6.1
|
||||
bbox["G-C-OXHQ--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXHA--"] = icn["TP.HARBOR POINT A"]; //2.X.2.5.1.6.2
|
||||
bbox["G-C-OXHA--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXHY--"] = icn["TP.HARBOR POINT Y"]; //2.X.2.5.1.6.3
|
||||
bbox["G-C-OXHY--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXHX--"] = icn["TP.HARBOR POINT X"]; //2.X.2.5.1.6.4
|
||||
bbox["G-C-OXHX--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXR---"] = icn["TP.ROUTE"]; //2.X.2.5.1.7
|
||||
bbox["G-C-OXR---"] = { x1: 30, x2: 170, y1: 60, y2: 140 };
|
||||
sidc["G-C-OXRR--"] = icn["TP.ROUTE RENDEZVOUS"]; //2.X.2.5.1.7.1
|
||||
bbox["G-C-OXRR--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-C-OXRD--"] = icn["TP.ROUTE DIVERSIONS"]; //2.X.2.5.1.7.2
|
||||
bbox["G-C-OXRD--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-C-OXRW--"] = icn["TP.ROUTE WAYPOINT"]; //2.X.2.5.1.7.3
|
||||
bbox["G-C-OXRW--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-C-OXRP--"] = icn["TP.ROUTE PIM"]; //2.X.2.5.1.7.4
|
||||
bbox["G-C-OXRP--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-C-OXRT--"] = icn["TP.ROUTE POINT R"]; //2.X.2.5.1.7.5
|
||||
bbox["G-C-OXRT--"] = { x1: 30, x2: 170, y1: 60, y2: 170 };
|
||||
sidc["G-C-OXSTC-"] = icn["TP.COMBATANT STATION"]; //2.X.2.5.1.8.1
|
||||
bbox["G-C-OXSTC-"] = { x1: -15, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-C-OXSTCP"] = icn["TP.PICKET STATION"]; //2.X.2.5.1.8.1.1
|
||||
bbox["G-C-OXSTCP"] = { x1: -15, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-C-OXSTCA"] = icn["TP.ASW SHIP STATION"]; //2.X.2.5.1.8.1.2
|
||||
bbox["G-C-OXSTCA"] = { x1: -15, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-C-OXSTR-"] = icn["TP.REPLENISHMENT AT SEA (RAS) STATION"]; //2.X.2.5.1.8.2
|
||||
bbox["G-C-OXSTR-"] = { x1: -15, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-C-OXSTH-"] = icn["TP.RESCUE STATION"]; //2.X.2.5.1.8.3
|
||||
bbox["G-C-OXSTH-"] = { x1: -15, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-C-OXSTS-"] = icn["TP.SUBMARINE STATION"]; //2.X.2.5.1.8.4
|
||||
bbox["G-C-OXSTS-"] = { x1: -15, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-C-OXSTSA"] = icn["TP.ASW SUBMARINE STATION"]; //2.X.2.5.1.8.5
|
||||
bbox["G-C-OXSTSA"] = { x1: -115, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-C-OXS---"] = icn["TP.SEARCH"]; //2.X.2.5.1.9
|
||||
bbox["G-C-OXS---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXSA--"] = icn["TP.SEARCH AREA"]; //2.X.2.5.1.9.1 TODO
|
||||
bbox["G-C-OXSA--"] = { x1: 20, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXSD--"] = icn["TP.DIP POSITION"]; //2.X.2.5.1.9.2 TODO
|
||||
bbox["G-C-OXSD--"] = { x1: 10, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXSC--"] = icn["TP.SEARCH CENTER"]; //2.X.2.5.1.9.3
|
||||
bbox["G-C-OXSC--"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OXAC--"] = icn["TP.COMBAT AIR PATROL (CAP)"]; //2.X.2.5.1.10.1
|
||||
bbox["G-C-OXAC--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAA--"] = icn["TP.AIRBORNE EARLY WARNING (AEW)"]; //2.X.2.5.1.10.2
|
||||
bbox["G-C-OXAA--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAT--"] = icn["TP.TACAN"]; //2.X.2.5.1.10.3
|
||||
bbox["G-C-OXAT--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAK--"] = icn["TP.TANKING"]; //2.X.2.5.1.10.4
|
||||
bbox["G-C-OXAK--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAF--"] = icn["TP.FIXED WING"]; //2.X.2.5.1.10.5
|
||||
bbox["G-C-OXAF--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAH--"] = icn["TP.ROTARY WING"]; //2.X.2.5.1.10.6
|
||||
bbox["G-C-OXAH--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAO--"] = icn["TP.TOMCAT"]; //2.X.2.5.1.10.7
|
||||
bbox["G-C-OXAO--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAR--"] = icn["TP.RESCUE"]; //2.X.2.5.1.10.8
|
||||
bbox["G-C-OXAR--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAP--"] = icn["TP.REPLENISH"]; //2.X.2.5.1.10.9
|
||||
bbox["G-C-OXAP--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAM--"] = icn["TP.MARSHALL"]; //2.X.2.5.1.10.10
|
||||
bbox["G-C-OXAM--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAS--"] = icn["TP.STRIKE IP"]; //2.X.2.5.1.10.11
|
||||
bbox["G-C-OXAS--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OXAD--"] = icn["TP.CORRIDOR TAB POINT"]; //2.X.2.5.1.10.12
|
||||
bbox["G-C-OXAD--"] = { x1: 60, x2: 140, y1: 40, y2: 160 };
|
||||
sidc["G-C-OG----"] = icn["TP.ACTION POINT"]; //2.X.2.5.2
|
||||
bbox["G-C-OG----"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-OGC---"] = icn["TP.ACTION POINT"]; //2.X.2.5.2.1
|
||||
bbox["G-C-OGC---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-OGP---"] = icn["TP.CONTACT POINT"]; //2.X.2.5.2.2
|
||||
bbox["G-C-OGP---"] = { x1: 55, x2: 145, y1: -10 };
|
||||
sidc["G-C-OGT---"] = icn["TP.COORDINATION POINT"]; //2.X.2.5.2.3
|
||||
bbox["G-C-OGT---"] = { x1: 50, x2: 150, y1: 50, y2: 150 };
|
||||
sidc["G-C-OGD---"] = icn["TP.DECISION POINT"]; //2.X.2.5.2.4
|
||||
bbox["G-C-OGD---"] = { x1: 30, x2: 170, y1: 25, y2: 160 };
|
||||
sidc["G-C-OGL---"] = icn["TP.ACTION LINKUP POINT"]; //2.X.2.5.2.5
|
||||
bbox["G-C-OGL---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-OGN---"] = icn["TP.ACTION PASSAGE POINT"]; //2.X.2.5.2.6
|
||||
bbox["G-C-OGN---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-OGR---"] = icn["TP.ACTION RALLY POINT"]; //2.X.2.5.2.7
|
||||
bbox["G-C-OGR---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-OGS---"] = icn["TP.ACTION RELEASE POINT"]; //2.X.2.5.2.8
|
||||
bbox["G-C-OGS---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-OGI---"] = icn["TP.ACTION START POINT"]; //2.X.2.5.2.9
|
||||
bbox["G-C-OGI---"] = { x1: 60, x2: 140, y1: -60 };
|
||||
sidc["G-C-OGW---"] = icn["TP.WAYPOINT"]; //2.X.2.5.2.10
|
||||
bbox["G-C-OGW---"] = { x1: 60, x2: 140, y1: 60, y2: 140 };
|
||||
sidc["G-O-VA----"] = icn["TP.FIRE"]; //2.X.3.1.1
|
||||
sidc["G-O-VR----"] = icn["GR.EQ.HOWITZER"]; //2.X.3.1.2
|
||||
sidc["G-O-VE----"] = icn["ST.IC.KILLING VICTIM"]; //2.X.3.1.3
|
||||
sidc["G-O-VB----"] = icn["AIR.MISSILE.IC.BOMB"]; //2.X.3.1.4
|
||||
sidc["G-O-VY----"] = icn["ST.IC.BOOBY TRAP"]; //2.X.3.1.5
|
||||
sidc["G-O-VD----"] = icn["ST.IC.DRIVE-BY SHOOTING"]; //2.X.3.1.6
|
||||
sidc["G-O-VI----"] = icn["TP.INDIRECT FIRE"]; //2.X.3.1.7
|
||||
sidc["G-O-VM----"] = icn["GR.EQ.MORTAR"]; //2.X.3.1.8
|
||||
sidc["G-O-VK----"] = icn["GR.EQ.MULTIPLE ROCKET LAUNCHER"]; //2.X.3.1.9
|
||||
sidc["G-O-VS----"] = icn["ST.IC.SNIPING"]; //2.X.3.1.10
|
||||
sidc["G-O-VP----"] = icn["ST.IC.POISONING"]; //2.X.3.1.11
|
||||
sidc["G-O-VU----"] = icn["TP.AMBUSH"]; //2.X.3.1.12
|
||||
sidc["G-O-VC----"] = icn["GR.IC.FF.CLASS V"]; //2.X.3.1.13
|
||||
sidc["G-O-VH----"] = icn["AR.I.FF.CIVILIAN ROTARY WING"]; //2.X.3.1.14
|
||||
sidc["G-O-VF----"] = [icn["GR.IC.FF.INFANTRY"], icn["GR.IC.FF.MOTORIZED"]]; //2.X.3.1.15
|
||||
sidc["G-O-VO----"] = icn["GR.IC.FF.INFANTRY"]; //2.X.3.1.16
|
||||
sidc["G-O-VL----"] = icn["GR.IC.FF.RECONNAISSANCE"]; //2.X.3.1.17
|
||||
sidc["G-O-VX----"] = icn["GR.IC.FF.SIGNAL"]; //2.X.3.1.18
|
||||
sidc["G-O-VZ----"] = icn["GR.IC.FF.SUPPLY"]; //2.X.3.1.19
|
||||
sidc["G-O-LB----"] = icn["ST.IC.BLACK LIST LOCATION"]; //2.X.3.2.1
|
||||
sidc["G-O-LG----"] = icn["ST.IC.GRAY LIST LOCATION"]; //2.X.3.2.2
|
||||
sidc["G-O-LW----"] = icn["ST.IC.WHITE LIST LOCATION"]; //2.X.3.2.3
|
||||
sidc["G-O-PR----"] = icn["TP.ROAD BLOCK"]; //2.X.3.3.1
|
||||
sidc["G-O-PRB---"] = icn["TP.ROAD BLOCK (UNDER CONSTRUCTION)"]; //2.X.3.3.1.1
|
||||
sidc["G-O-PT----"] = icn["ST.IC.PATROLLING"]; //2.X.3.3.2
|
||||
sidc["G-O-PC----"] = [icn["ST.IC.INDIVIDUAL"], icn["ST.M1.WILLING"]]; //2.X.3.3.3
|
||||
sidc["G-O-PCU---"] = [
|
||||
icn["ST.IC.INDIVIDUAL"],
|
||||
icn["ST.M1.COERCED/IMPRESSED"]
|
||||
]; //2.X.3.3.3.1
|
||||
sidc["G-O-PD----"] = icn["ST.IC.DEMONSTRATION"]; //2.X.3.3.4
|
||||
sidc["G-O-PM----"] = icn["ST.IC.MINE LAYING"]; //2.X.3.3.5
|
||||
sidc["G-O-PH----"] = icn["ST.IC.PSYCHOLOGICAL OPERATIONS"]; //2.X.3.3.6
|
||||
sidc["G-O-PHY---"] =
|
||||
icn["ST.IC.RADIO AND TELEVISION PSYCHOLOGICAL OPERATIONS"]; //2.X.3.3.6.1
|
||||
sidc["G-O-PHW---"] = [
|
||||
icn["ST.IC.PSYCHOLOGICAL OPERATIONS"],
|
||||
icn["ST.M1.WRITTEN PSYCHOLOGICAL OPERATIONS"]
|
||||
]; //2.X.3.3.6.2
|
||||
sidc["G-O-PHG---"] = [
|
||||
icn["ST.IC.PSYCHOLOGICAL OPERATIONS"],
|
||||
icn["ST.M1.WRITTEN PSYCHOLOGICAL OPERATIONS"]
|
||||
]; //2.X.3.3.6.3
|
||||
sidc["G-O-PHT---"] = [
|
||||
icn["ST.IC.PSYCHOLOGICAL OPERATIONS"],
|
||||
icn["ST.M1.HOUSE-TO-HOUSE"]
|
||||
]; //2.X.3.3.6.4
|
||||
sidc["G-O-PG----"] = icn["ST.IC.SEARCHING"]; //2.X.3.3.7
|
||||
sidc["G-O-PS----"] = icn["ST.IC.SPY"]; //2.X.3.3.8
|
||||
sidc["G-O-PF----"] = icn["ST.IC.FOOD DISTRIBUTION"]; //2.X.3.3.9
|
||||
sidc["G-O-PI----"] = icn["GR.IC.FF.MEDICAL TREATMENT FACILITY"]; //2.X.3.3.10
|
||||
sidc["G-O-PE----"] = [
|
||||
icn["GR.IC.ELECTRONIC WARFARE"],
|
||||
icn["GR.IC.FF.INTERCEPT"]
|
||||
]; //2.X.3.3.11
|
||||
sidc["G-O-PX----"] = icn["ST.IC.EXTORTION"]; //2.X.3.3.12
|
||||
sidc["G-O-PJV---"] = [
|
||||
icn["ST.IC.KNOWN INSURGENT VEHICLE"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
]; //2.X.3.3.13.1
|
||||
sidc["G-O-PJA---"] = [
|
||||
icn["ST.IC.HIJACKING (AIRPLANE)"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
]; //2.X.3.3.13.2
|
||||
sidc["G-O-PJB---"] = [
|
||||
icn["ST.IC.HIJACKING (BOAT)"],
|
||||
icn["ST.M1.HIJACKING/HIJACKED"]
|
||||
]; //2.X.3.3.13.3
|
||||
sidc["G-O-PK----"] = [icn["ST.IC.INDIVIDUAL"], icn["ST.M1.KIDNAPPING"]]; //2.X.3.3.14
|
||||
sidc["G-O-PA----"] = icn["ST.IC.ARREST"]; //2.X.3.3.15
|
||||
sidc["G-O-PO----"] = icn["ST.IC.DRUG RELATED ACTIVITIES"]; //2.X.3.3.16
|
||||
sidc["G-O-IR----"] = icn["ST.IC.GROUP"]; //2.X.3.4.1
|
||||
sidc["G-O-IS----"] = icn["ST.IC.SAFE HOUSE"]; //2.X.3.4.2
|
||||
sidc["G-O-IG----"] = icn["ST.IC.GRAFFITI"]; //2.X.3.4.3
|
||||
sidc["G-O-IV----"] = icn["ST.IC.VANDALISM/LOOT/RANSACK/PLUNDER/SACK"]; //2.X.3.4.4
|
||||
sidc["G-O-IK----"] = icn["ST.IC.KNOWN INSURGENT VEHICLE"]; //2.X.3.4.5
|
||||
sidc["G-O-ID----"] = [
|
||||
icn["ST.IC.KNOWN INSURGENT VEHICLE"],
|
||||
icn["ST.M1.DRUG"]
|
||||
]; //2.X.3.4.6
|
||||
sidc["G-O-IF----"] = icn["ST.IC.INTERNAL SECURITY FORCE"]; //2.X.3.4.7
|
||||
}
|
||||
};
|
||||
12
node_modules/milsymbol/src/milsymbol.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
/* ***************************************************************************************
|
||||
Creating the base of milsymbol
|
||||
*************************************************************************************** */
|
||||
import { ms } from "./ms.js";
|
||||
|
||||
import Symbol from "./ms/symbol.js";
|
||||
ms.Symbol = Symbol;
|
||||
|
||||
/* ***************************************************************************************
|
||||
Export ms to the world
|
||||
*************************************************************************************** */
|
||||
export { ms };
|
||||
239
node_modules/milsymbol/src/ms.js
generated
vendored
Normal file
@@ -0,0 +1,239 @@
|
||||
var ms = new (function() {
|
||||
this._autoValidation = false;
|
||||
this.version = "2.0.0";
|
||||
if (typeof console === "object" && typeof process !== "object") {
|
||||
console.info(
|
||||
"milsymbol.js " +
|
||||
this.version +
|
||||
" - Copyright (c) 2018 M" +
|
||||
String.fromCharCode(229) +
|
||||
"ns Beckman http://www.spatialillusions.com"
|
||||
);
|
||||
}
|
||||
})();
|
||||
|
||||
import ColorModes from "./colormodes.js";
|
||||
import basegeometry from "./symbolfunctions/basegeometry.js";
|
||||
import icon from "./symbolfunctions/icon.js";
|
||||
import modifier from "./symbolfunctions/modifier.js";
|
||||
import statusmodifier from "./symbolfunctions/statusmodifier.js";
|
||||
import engagmentbar from "./symbolfunctions/engagmentbar.js";
|
||||
import affliationdimension from "./symbolfunctions/affliationdimension.js";
|
||||
import textfields from "./symbolfunctions/textfields.js";
|
||||
import directionarrow from "./symbolfunctions/directionarrow.js";
|
||||
|
||||
ms.setColorMode = function(mode, colorMode) {
|
||||
this._colorModes[mode] = {};
|
||||
this._colorModes[mode].Hostile = colorMode.Hostile;
|
||||
this._colorModes[mode].Friend = colorMode.Friend;
|
||||
this._colorModes[mode].Neutral = colorMode.Neutral;
|
||||
this._colorModes[mode].Unknown = colorMode.Unknown;
|
||||
this._colorModes[mode].Civilian = colorMode.Civilian;
|
||||
return this._colorModes[mode];
|
||||
};
|
||||
|
||||
ms.addSymbolPart = function(part) {
|
||||
if (typeof part === "function") {
|
||||
var symbolParts = ms.getSymbolParts();
|
||||
if (symbolParts.indexOf(part) == -1)
|
||||
ms.setSymbolParts(symbolParts.concat(part));
|
||||
}
|
||||
return ms;
|
||||
};
|
||||
|
||||
ms.getSymbolParts = function() {
|
||||
return this._symbolParts.slice(0);
|
||||
};
|
||||
|
||||
ms.setSymbolParts = function(parts) {
|
||||
this._symbolParts = parts;
|
||||
return ms;
|
||||
};
|
||||
|
||||
ms.reset = function() {
|
||||
this._brokenPath2D = undefined;
|
||||
this._colorModes = {};
|
||||
for (var name in ColorModes) {
|
||||
ms.setColorMode(name, ColorModes[name]);
|
||||
}
|
||||
this._dashArrays = {
|
||||
pending: "4,4",
|
||||
anticipated: "8,12",
|
||||
feintDummy: "8,8"
|
||||
};
|
||||
this._getIcons = {};
|
||||
this._getMetadata = {};
|
||||
this._hqStaffLength = 100;
|
||||
this._iconCache = {}; // A cache of icn to speed stuff up...
|
||||
this._iconParts = [];
|
||||
this._labelCache = {}; // A cache of label overrides to speed stuff up...
|
||||
this._labelOverrides = {};
|
||||
this._iconSIDC = {};
|
||||
this._iconSIDC.letter = [];
|
||||
this._iconSIDC.number = [];
|
||||
this._STD2525 = true;
|
||||
this._svgNS = "http://www.w3.org/2000/svg";
|
||||
this._symbolParts = [];
|
||||
ms.addSymbolPart(basegeometry);
|
||||
ms.addSymbolPart(icon);
|
||||
ms.addSymbolPart(modifier);
|
||||
ms.addSymbolPart(statusmodifier);
|
||||
ms.addSymbolPart(engagmentbar);
|
||||
ms.addSymbolPart(affliationdimension);
|
||||
ms.addSymbolPart(textfields);
|
||||
ms.addSymbolPart(directionarrow);
|
||||
};
|
||||
|
||||
ms.reset();
|
||||
|
||||
import { BBox } from "./ms/bbox.js";
|
||||
import { Colormode } from "./ms/colormode.js";
|
||||
|
||||
ms.BBox = BBox;
|
||||
ms.ColorMode = Colormode;
|
||||
|
||||
ms.setBrokenPath2D = function(broken) {
|
||||
ms._brokenPath2D = broken;
|
||||
};
|
||||
|
||||
ms._getIconParts = function iconparts(
|
||||
metadata,
|
||||
colors,
|
||||
_STD2525,
|
||||
monoColor,
|
||||
alternateMedal
|
||||
) {
|
||||
var icn = {};
|
||||
|
||||
for (var i in this._iconParts) {
|
||||
if (!this._iconParts.hasOwnProperty(i)) continue;
|
||||
this._iconParts[i].call(
|
||||
this,
|
||||
icn,
|
||||
metadata,
|
||||
colors,
|
||||
_STD2525,
|
||||
monoColor,
|
||||
alternateMedal
|
||||
);
|
||||
}
|
||||
|
||||
return icn;
|
||||
};
|
||||
|
||||
ms._scale = function(factor, instruction) {
|
||||
return {
|
||||
type: "translate",
|
||||
x: 100 - factor * 100,
|
||||
y: 100 - factor * 100,
|
||||
draw: [{ type: "scale", factor: factor, draw: [instruction] }]
|
||||
};
|
||||
};
|
||||
ms._translate = function(x, y, instruction) {
|
||||
return { type: "translate", x: x, y: y, draw: [instruction] };
|
||||
};
|
||||
|
||||
ms.addIconParts = function(parts) {
|
||||
if (!Array.isArray(parts)) parts = [parts];
|
||||
for (var i = 0; i < parts.length; i++) {
|
||||
if (
|
||||
typeof parts[i] === "function" &&
|
||||
this._iconParts.indexOf(parts[i]) == -1
|
||||
) {
|
||||
this._iconParts = this._iconParts.concat(parts[i]);
|
||||
}
|
||||
}
|
||||
return ms;
|
||||
};
|
||||
ms.addLabelOverrides = function(parts, type) {
|
||||
this._labelCache = {}; // Clear the cache
|
||||
if (typeof parts === "function") {
|
||||
if (!this._labelOverrides.hasOwnProperty(type)) {
|
||||
this._labelOverrides[type] = [];
|
||||
}
|
||||
this._labelOverrides[type] = this._labelOverrides[type].concat(parts);
|
||||
}
|
||||
return ms;
|
||||
};
|
||||
|
||||
ms.addIcons = function(obj) {
|
||||
this._iconCache = {}; // Clear the cache
|
||||
if (!Array.isArray(obj)) obj = [obj];
|
||||
for (var i = 0; i < obj.length; i++) {
|
||||
if (obj[i].hasOwnProperty("getMetadata"))
|
||||
ms._getMetadata[obj[i].type] = obj[i].getMetadata;
|
||||
if (obj[i].hasOwnProperty("getIcons"))
|
||||
ms._getIcons[obj[i].type] = obj[i].getIcons;
|
||||
if (obj[i].hasOwnProperty("iconParts")) ms.addIconParts(obj[i].iconParts);
|
||||
if (obj[i].hasOwnProperty("labels"))
|
||||
ms.addLabelOverrides(obj[i].labels, obj[i].type);
|
||||
if (obj[i].hasOwnProperty("icons"))
|
||||
ms.addSIDCicons(obj[i].icons, obj[i].type);
|
||||
}
|
||||
};
|
||||
|
||||
ms.addSIDCicons = function(parts, type) {
|
||||
if (typeof parts === "function") {
|
||||
if (this._iconSIDC[type].indexOf(parts) == -1)
|
||||
this._iconSIDC[type] = this._iconSIDC[type].concat(parts);
|
||||
}
|
||||
return ms;
|
||||
};
|
||||
|
||||
ms.getColorMode = function(mode) {
|
||||
var c = this._colorModes[mode];
|
||||
// Clone the mode and return the clone
|
||||
return new ms.ColorMode(
|
||||
c.Civilian,
|
||||
c.Friend,
|
||||
c.Hostile,
|
||||
c.Neutral,
|
||||
c.Unknown
|
||||
);
|
||||
};
|
||||
ms.getDashArrays = function() {
|
||||
return this._dashArrays;
|
||||
};
|
||||
ms.getHqStaffLength = function() {
|
||||
return this._hqStaffLength;
|
||||
};
|
||||
|
||||
ms.getVersion = function() {
|
||||
return this.version;
|
||||
};
|
||||
|
||||
import outline from "./ms/outline.js";
|
||||
|
||||
ms.outline = outline;
|
||||
|
||||
ms.setDashArrays = function(pending, anticipated, feintDummy) {
|
||||
this._dashArrays.pending = pending;
|
||||
this._dashArrays.anticipated = anticipated;
|
||||
this._dashArrays.feintDummy = feintDummy;
|
||||
return this._dashArrays;
|
||||
};
|
||||
ms.setHqStaffLength = function(len) {
|
||||
this._hqStaffLength = len;
|
||||
return this._hqStaffLength;
|
||||
};
|
||||
|
||||
ms.setStandard = function(standard) {
|
||||
if (standard == "2525") {
|
||||
this._STD2525 = true;
|
||||
return true;
|
||||
}
|
||||
if (standard == "APP6") {
|
||||
this._STD2525 = false;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
/* ***************************************************************************************
|
||||
Add base geometries
|
||||
*************************************************************************************** */
|
||||
import geometries from "./ms/symbolgeometries.js";
|
||||
|
||||
ms._symbolGeometries = geometries;
|
||||
|
||||
export { ms };
|
||||