From 5e776c166c72dac4d8cd5a700e624257841511e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=CC=8Ans=20Beckman?= Date: Mon, 27 Oct 2014 22:55:11 +0100 Subject: [PATCH] Initial commit of docs --- docs/figure13.png | Bin 0 -> 25882 bytes docs/index.html | 510 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 510 insertions(+) create mode 100644 docs/figure13.png create mode 100644 docs/index.html diff --git a/docs/figure13.png b/docs/figure13.png new file mode 100644 index 0000000000000000000000000000000000000000..2d351d42915f9ddbfe5465ae1f9051007816263c GIT binary patch literal 25882 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 bVP8?R7`j^w%4eS5YK}>Y%869{(D(lz2BLak literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..6a0f25b3 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,510 @@ + + + + + + + +Spatial Illusions + + + + + + + + +
+ +SPATIAL ILLUSIONS + +
+ + + +
+ + + + +

MilSymbol - Military symbols made easy

+MilSymbol is a small library in pure javascript that creates SVG symbols according to +MIL-STD-2525 and APP6. All unit symbols with SIDCs in both 2525(c) and APP6(b) are supported. +The symbols are created according to APP6(c) symbology and might therefore differ from the +symbols in shown in the standard documents, but they are made according to the standards and +follows the way that symbols are created in ADRP 1-02 (US Army Doctrine Reference Publication).
+At the moment APP6(B) ANNEX D / 2525C APPENDIX A (Unit Symbols) and 2525C APPENDIX D (Signals intelligence symbols) and APPENDIX E (Stability operations symbols) / parts of unit symbols for 2525D are implemented in this library.
+ +
+The library is published under a BSD-license so you can do basically anything you want +with it as long as you give it some credit. All of the code was created as a proof of concept +and was initially just thought as a simple way for me to get symbols for some webmapping +demos I was making as a hobby, but the code expanded into something much more.
+
+ +MilSymbol logs the current version number to the console when it is initiated.
+
+ +

Examples

+ +MIL-STD-2525C TABLE IX. Tactical symbol display option hierarchy, recreated with MilSymbol.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +ATTRIBUTES +
+ + + +Frame: ON (black or white depending on background)
+Fill: ON (use default color indicating standard identity)
+Icon: ON (black or white)
+MilSymbol: default +
+ + + +Frame: ON (use default color indicating standard identity)
+Fill: OFF
+Icon: ON (use default color indicating standard identity)
+MilSymbol: {fill:false} +
+ + + +Frame: ON (black or white depending on background)
+Fill: OFF
+Icon: ON (black or white)
+Comments: Default option for monochrome implementation; replace black/white +with the colors available in this implementation.
+MilSymbol: {fill:false,monoColor:"black"} +
+ + + +Frame: OFF (none)
+Fill: OFF
+Icon: ON (use default color indicating standard identity)
+MilSymbol: {fill:false,frame:false} +
+ + + +Frame: ON (use default color indicating standard identity)
+Fill: OFF
+Icon: OFF (none)
+Comments: "?" is part of the frame and is displayed in this frame-only +presentation.
+MilSymbol: {fill:false,icon:false} +
+ + + +Frame: ON (monochrome system)
+Fill: OFF
+Icon: OFF (none)
+Comments: "?" is part of the frame and is displayed in this frame-only +presentation.
+MilSymbol: {fill:false,icon:false,monoColor:"black"} +
+ + + +Frame: OFF (none)
+Fill: ON (use default color indicating standard identity)
+Icon: OFF (none)
+MilSymbol: {frame:false,icon:false} (size set to 15px) +
+ + + +Frame: OFF (none)
+Fill: OFF (use default color indicating standard identity)
+Icon: OFF (none)
+Comments: Use only to indicate location of symbol.
+MilSymbol: {frame:false,fill:false,icon:false} (size set to 15px) +

+ +Reference figure 13 from MIL-STD-2525C:
+
+Same figure created with MilSymbol: (The direction arrow on the Reference figure points in the wrong direction, given direction is 0450 mills.)
+
+Most tables and figures from MIL-STD-2525C, implemented in MilSymbol, can be found here.
+Most tables and figures from APP6b, implemented in MilSymbol, can be found here.
+
+Under development MIL-STD-2525D. Symbols implemented in MilSymbol, can be found here. + + +

Demos

+

Quick display of Units in a LeafLet map

+
+Showing a usecase of my javascript library just displaying some units on a leaflet map. It's possible to drag the symbols to new locations but at the moment there is no backend to save the new positions.
+Open in new Window
+ +

Quick display of Units in an OpenLayers 3 map

+
+In OpenLayers you will have to base64 encode your symbols, but other than that it's quite straight forward. This example might not work in older versions of Internet Explorer
+Open in new Window
+ +

MilSymbol Units in d3js

+
+It's possible to use MilSymbol symbols in d3 as well and use d3's functionallity to draw network graphs.
+Open in new Window
+ +

Documentation

+

Creating a symbol

+ +To create a new symbol you use
+mySymbol = new MilSymbol(SIDC)
+where SIDS is a complete or at least the first 3 chars of a SIDC Code.
+ +You can also set other initial attributes when you create your symbol
+mySymbol = new MilSymbol(SIDC,{initial values})
+
+The attributes for you symbol is:
+fill default true
+Should your symbol be filled with color.
+ +frame default true
+Should your symbol have a frame.
+ All symbols support to be unframed, not just the ones specified in 2525B.

+ +icon default true
+Should your symbol have an icon.
+ +strokeWidth default 3
+The stroke width of the symbol.
+ +size default 100
+The L value for you symbol. (If L < 10 the symbol will be a filled circle with the diameter of your L, at these sizes symbols won't be readable otherwise.)
+ +colorMode default "Light"
+"Light", "Medium" or "Dark".
+ +monoColor default ""
+Set to any color name "Black"/"Green"/e.t.c. or color value "rgb(255,0,0)".
+ +civilianColors default true
+2525C specifics purple as an optional color for civilian symbols. Of corse we like color so we set this as default.
+ +force2525 default true
+Sometimes APP6 and 2525 differ in symbols, for example 2525 wants VSTOL to be symbolized with the letter L but APP6 want to use the letter V, there are also some differences in fill colors and other. Default we are using APP6 symbology, but if you want to force 2525 symbology, just set this to true. (All possible SIDC will have some kind of symbol no matter setting, so you will always get a symbol.)
+ +infoFields default true
+If you have set some text fields and direction but don't want the 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.
+ +quantity
+FeildID C
+reinforcedReduced
+FeildID F
+staffComments
+FeildID G
+additionalInformation
+FeildID H
+evaluationRating
+FeildID J
+combatEffectiveness
+FeildID K
+signatureEquipment
+FeildID L
+higherFormation
+FeildID M
+hostile
+FeildID N
+iffSif
+FeildID P
+direction
+FeildID Q, at the moment all directions should be in degrees and not in mils.
+ +uniqueDesignation
+FeildID T
+type
+FeildID V
+dtg
+FeildID W
+altitudeDepth
+FeildID X
+location
+FeildID Y
+speed
+FeildID Z
+specialHeadquarters
+FeildID AA
+ + +

Getting a symbol

+ +You can get your symbol in two ways. Either use symbolSvg() or symbolMarker(), where I would recommend to use symbolMarker().
+
+symbolSvg()
+This will return just you symbol without any text feilds. It will return an object with two properies object and textXML.
+The object property can be used if you want to process your symbol further and the textXML if you want to write you symbol directly to your document.
+Example:
+document.getElementById("2525Symbol").innerHTML = mySymbol.symbolSvg().textXML
+
+symbolMarker({symbolObject})
+This will return the symbol with all information printed. The left and top offsets of the insertion point are available from symbolMarker().x and symbolMaker().y
It will return an object with six properies object, textXML, width, height, x and y.
+The object property can be used if you want to process your symbol further and the textXML if you want to write you symbol directly to your document.
+It's possible to pass an symbolObject from symbolSvg() to this function. If you know that you will update the information around the icon a lot but the SIDC will be the same, the recommendation is to cash the symbolObject and pass it to the function. If you don't pass any object the function will create a new icon from the symbols SIDC.
+Example:
+document.getElementById("2525Symbol").innerHTML = mySymbol.symbolMarker().textXML
+
+Example using a symbolObject:
+document.getElementById("2525Symbol").innerHTML = mySymbol.symbolMarker(cashedSymbol.symbolSvg()).textXML
+ +

Updating a symbol

+It is possible at any time to update properties for you symbol and request a new rendition.
+Example:
+var sym = new MilSymbol("SFG-UCA----G",{size:50});
+document.write(sym.symbolMarker().textXML);
+document.write("<br>");
+sym.size = 27;
+sym.uniqueDesignation = "NAME";
+document.write(sym.symbolMarker().textXML);
+
+Will produce:
+ + + +

FAQ

+The library is focused on flexibility and simplicity and not on speed but it's quite fast anyway. After the initial compilation of the source most symbols will be created under 3 milliseconds.
+
+There are some symbols in APP6 we don't support, simply because the SIDCs listed in APP6 sometimes have errors in them and we simply couldn't figure out the correct ones...
+The symbols are:
+1.X.3.1.1.4.6.1.1
+1.X.3.1.1.4.6.1.2
+1.X.3.1.1.4.6.1.3
+1.X.3.1.1.5.10
+1.X.3.1.1.6.1.11
+1.X.3.1.1.6.1.12
+1.X.3.1.1.6.1.13
+1.X.3.1.1.6.1.14
+1.X.3.1.1.7.7
+1.X.3.1.1.7.8
+1.X.3.1.1.11
+1.X.3.1.2.9
+1.X.3.1.3.3.15
+1.X.3.1.3.4.8
+1.X.3.1.5
+1.X.3.1.6
+1..X.3.2.2.3.2.1
+1.X.4.1.3.4 have wrong SIDC in APP6 but we used the one in 2525.
+And the whole hierarchy 1.X.3.1.1.10 has the wrong SIDC in APP6 but we use the ones listed in 2525.
+

Contact

+All this was made by Måns Beckman, I'm an IT consultant working with GIS and information visualization +mainly with defence customers. All information on this homepage is however created in my spare time +and has no connection to my work, my work just happens to be my hobby as well.
+ + +If you want some more information you can contact med at mans.beckman/at/spatialillusions/dot/com +
+ +01 DEC 2013 - Måns Beckman + + +
+ + + + \ No newline at end of file