@armyc2.c5isr.renderer/mil-sym-ts-web 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +57 -0
  3. package/buildNode.bat +2 -0
  4. package/buildWeb.bat +2 -0
  5. package/dist/C5Ren.d.ts +6970 -0
  6. package/dist/C5Ren.js +2 -0
  7. package/dist/C5Ren.js.map +1 -0
  8. package/dist/LICENSE +201 -0
  9. package/dist/README.md +57 -0
  10. package/dist/armyc2.c5isr.renderer-mil-sym-ts-web-2.2.0.tgz +0 -0
  11. package/dist/manifest.json +4 -0
  12. package/dist/package.json +16 -0
  13. package/index.ts +169 -0
  14. package/package.bak +50 -0
  15. package/package.json +40 -0
  16. package/package.node.json +43 -0
  17. package/package.pack.json +19 -0
  18. package/package.packWeb.json +16 -0
  19. package/package.web.json +40 -0
  20. package/src/main/ts/android/graphics/Bitmap.ts +7 -0
  21. package/src/main/ts/android/graphics/Paint.ts +26 -0
  22. package/src/main/ts/android/graphics/Path.ts +78 -0
  23. package/src/main/ts/android/graphics/PointF.ts +14 -0
  24. package/src/main/ts/android/graphics/Rect.ts +18 -0
  25. package/src/main/ts/android/graphics/RectF.ts +50 -0
  26. package/src/main/ts/android/graphics/Region.ts +36 -0
  27. package/src/main/ts/android/graphics/Typeface.ts +11 -0
  28. package/src/main/ts/armyc2/c5isr/JavaLineArray/BasicShapes.ts +99 -0
  29. package/src/main/ts/armyc2/c5isr/JavaLineArray/CChannelPoints2.ts +34 -0
  30. package/src/main/ts/armyc2/c5isr/JavaLineArray/CELineArray.ts +193 -0
  31. package/src/main/ts/armyc2/c5isr/JavaLineArray/Channels.ts +2971 -0
  32. package/src/main/ts/armyc2/c5isr/JavaLineArray/DISMSupport.ts +4008 -0
  33. package/src/main/ts/armyc2/c5isr/JavaLineArray/POINT2.ts +93 -0
  34. package/src/main/ts/armyc2/c5isr/JavaLineArray/Shape2.ts +89 -0
  35. package/src/main/ts/armyc2/c5isr/JavaLineArray/TacticalLines.ts +515 -0
  36. package/src/main/ts/armyc2/c5isr/JavaLineArray/arraysupport.ts +5403 -0
  37. package/src/main/ts/armyc2/c5isr/JavaLineArray/countsupport.ts +1084 -0
  38. package/src/main/ts/armyc2/c5isr/JavaLineArray/flot.ts +2173 -0
  39. package/src/main/ts/armyc2/c5isr/JavaLineArray/lineutility.ts +4934 -0
  40. package/src/main/ts/armyc2/c5isr/JavaLineArray/ref.ts +7 -0
  41. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/Modifier2.ts +5601 -0
  42. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/P1.ts +14 -0
  43. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/TGLight.ts +648 -0
  44. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/clsChannelUtility.ts +647 -0
  45. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/clsMETOC.ts +2994 -0
  46. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/clsUtility.ts +2663 -0
  47. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/mdlGeodesic.ts +669 -0
  48. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsClipPolygon2.ts +971 -0
  49. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsClipQuad.ts +871 -0
  50. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsRenderer.ts +3507 -0
  51. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsRenderer2.ts +500 -0
  52. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsUtility.ts +1089 -0
  53. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsUtilityCPOF.ts +2656 -0
  54. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsUtilityGE.ts +1419 -0
  55. package/src/main/ts/armyc2/c5isr/data/genc.json +1407 -0
  56. package/src/main/ts/armyc2/c5isr/data/msd.json +17311 -0
  57. package/src/main/ts/armyc2/c5isr/data/mse.json +18500 -0
  58. package/src/main/ts/armyc2/c5isr/data/svgd.json +31214 -0
  59. package/src/main/ts/armyc2/c5isr/data/svge.json +30558 -0
  60. package/src/main/ts/armyc2/c5isr/graphics2d/AffineTransform.ts +10 -0
  61. package/src/main/ts/armyc2/c5isr/graphics2d/Area.ts +437 -0
  62. package/src/main/ts/armyc2/c5isr/graphics2d/BasicStroke.ts +429 -0
  63. package/src/main/ts/armyc2/c5isr/graphics2d/BasicTypes.ts +7 -0
  64. package/src/main/ts/armyc2/c5isr/graphics2d/BufferedImage.ts +35 -0
  65. package/src/main/ts/armyc2/c5isr/graphics2d/Font.ts +111 -0
  66. package/src/main/ts/armyc2/c5isr/graphics2d/FontMetrics.ts +29 -0
  67. package/src/main/ts/armyc2/c5isr/graphics2d/FontRenderContext.ts +18 -0
  68. package/src/main/ts/armyc2/c5isr/graphics2d/GeneralPath.ts +211 -0
  69. package/src/main/ts/armyc2/c5isr/graphics2d/Graphics2D.ts +80 -0
  70. package/src/main/ts/armyc2/c5isr/graphics2d/IPathIterator.ts +33 -0
  71. package/src/main/ts/armyc2/c5isr/graphics2d/ImageIO.ts +16 -0
  72. package/src/main/ts/armyc2/c5isr/graphics2d/Line2D.ts +726 -0
  73. package/src/main/ts/armyc2/c5isr/graphics2d/PathIterator.ts +141 -0
  74. package/src/main/ts/armyc2/c5isr/graphics2d/Point.ts +112 -0
  75. package/src/main/ts/armyc2/c5isr/graphics2d/Point2D.ts +261 -0
  76. package/src/main/ts/armyc2/c5isr/graphics2d/Polygon.ts +391 -0
  77. package/src/main/ts/armyc2/c5isr/graphics2d/Rectangle.ts +567 -0
  78. package/src/main/ts/armyc2/c5isr/graphics2d/Rectangle2D.ts +445 -0
  79. package/src/main/ts/armyc2/c5isr/graphics2d/Shape.ts +31 -0
  80. package/src/main/ts/armyc2/c5isr/graphics2d/Stroke.ts +18 -0
  81. package/src/main/ts/armyc2/c5isr/graphics2d/TextLayout.ts +45 -0
  82. package/src/main/ts/armyc2/c5isr/graphics2d/TexturePaint.ts +25 -0
  83. package/src/main/ts/armyc2/c5isr/renderer/IIconRenderer.ts +15 -0
  84. package/src/main/ts/armyc2/c5isr/renderer/IconRenderer.ts +22 -0
  85. package/src/main/ts/armyc2/c5isr/renderer/MilStdIconRenderer.ts +269 -0
  86. package/src/main/ts/armyc2/c5isr/renderer/ModifierRenderer.ts +9882 -0
  87. package/src/main/ts/armyc2/c5isr/renderer/PatternFillRenderer.ts +146 -0
  88. package/src/main/ts/armyc2/c5isr/renderer/SinglePointSVGRenderer.ts +1265 -0
  89. package/src/main/ts/armyc2/c5isr/renderer/shapes/arc.ts +64 -0
  90. package/src/main/ts/armyc2/c5isr/renderer/shapes/bcurve.ts +95 -0
  91. package/src/main/ts/armyc2/c5isr/renderer/shapes/ellipse.ts +93 -0
  92. package/src/main/ts/armyc2/c5isr/renderer/shapes/line.ts +114 -0
  93. package/src/main/ts/armyc2/c5isr/renderer/shapes/path.ts +555 -0
  94. package/src/main/ts/armyc2/c5isr/renderer/shapes/pathiterator.ts +62 -0
  95. package/src/main/ts/armyc2/c5isr/renderer/shapes/point.ts +120 -0
  96. package/src/main/ts/armyc2/c5isr/renderer/shapes/rectangle.ts +431 -0
  97. package/src/main/ts/armyc2/c5isr/renderer/shapes/roundedrectangle.ts +99 -0
  98. package/src/main/ts/armyc2/c5isr/renderer/shapes/types.ts +25 -0
  99. package/src/main/ts/armyc2/c5isr/renderer/shapes/utilities.ts +203 -0
  100. package/src/main/ts/armyc2/c5isr/renderer/utilities/AffiliationColors.ts +104 -0
  101. package/src/main/ts/armyc2/c5isr/renderer/utilities/Color.ts +481 -0
  102. package/src/main/ts/armyc2/c5isr/renderer/utilities/DistanceUnit.ts +40 -0
  103. package/src/main/ts/armyc2/c5isr/renderer/utilities/DrawRules.ts +1323 -0
  104. package/src/main/ts/armyc2/c5isr/renderer/utilities/EntityCode.ts +51 -0
  105. package/src/main/ts/armyc2/c5isr/renderer/utilities/ErrorLogger.ts +736 -0
  106. package/src/main/ts/armyc2/c5isr/renderer/utilities/GENCLookup.ts +106 -0
  107. package/src/main/ts/armyc2/c5isr/renderer/utilities/GeoPixelConversion3D.ts +84 -0
  108. package/src/main/ts/armyc2/c5isr/renderer/utilities/IMultiPointRenderer.ts +87 -0
  109. package/src/main/ts/armyc2/c5isr/renderer/utilities/IPointConversion.ts +34 -0
  110. package/src/main/ts/armyc2/c5isr/renderer/utilities/ImageInfo.ts +324 -0
  111. package/src/main/ts/armyc2/c5isr/renderer/utilities/LRUCache.ts +127 -0
  112. package/src/main/ts/armyc2/c5isr/renderer/utilities/LRUEntry.ts +18 -0
  113. package/src/main/ts/armyc2/c5isr/renderer/utilities/LogLevel.ts +111 -0
  114. package/src/main/ts/armyc2/c5isr/renderer/utilities/MODrawRules.ts +219 -0
  115. package/src/main/ts/armyc2/c5isr/renderer/utilities/MSInfo.ts +1008 -0
  116. package/src/main/ts/armyc2/c5isr/renderer/utilities/MSLookup.ts +882 -0
  117. package/src/main/ts/armyc2/c5isr/renderer/utilities/MilStdAttributes.ts +380 -0
  118. package/src/main/ts/armyc2/c5isr/renderer/utilities/MilStdSymbol.ts +797 -0
  119. package/src/main/ts/armyc2/c5isr/renderer/utilities/Modifiers.ts +1699 -0
  120. package/src/main/ts/armyc2/c5isr/renderer/utilities/PointConversion.ts +178 -0
  121. package/src/main/ts/armyc2/c5isr/renderer/utilities/PointConversionDummy.ts +45 -0
  122. package/src/main/ts/armyc2/c5isr/renderer/utilities/PointConverter3D.ts +126 -0
  123. package/src/main/ts/armyc2/c5isr/renderer/utilities/RectUtilities.ts +118 -0
  124. package/src/main/ts/armyc2/c5isr/renderer/utilities/RendererException.ts +11 -0
  125. package/src/main/ts/armyc2/c5isr/renderer/utilities/RendererSettings.ts +1201 -0
  126. package/src/main/ts/armyc2/c5isr/renderer/utilities/RendererUtilities.ts +591 -0
  127. package/src/main/ts/armyc2/c5isr/renderer/utilities/SVGInfo.ts +29 -0
  128. package/src/main/ts/armyc2/c5isr/renderer/utilities/SVGLookup.ts +753 -0
  129. package/src/main/ts/armyc2/c5isr/renderer/utilities/SVGSymbolInfo.ts +137 -0
  130. package/src/main/ts/armyc2/c5isr/renderer/utilities/SVGTextInfo.ts +438 -0
  131. package/src/main/ts/armyc2/c5isr/renderer/utilities/SettingsChangedEvent.ts +19 -0
  132. package/src/main/ts/armyc2/c5isr/renderer/utilities/SettingsChangedEventListener.ts +10 -0
  133. package/src/main/ts/armyc2/c5isr/renderer/utilities/SettingsEventListener.ts +5 -0
  134. package/src/main/ts/armyc2/c5isr/renderer/utilities/Shape2SVG.ts +404 -0
  135. package/src/main/ts/armyc2/c5isr/renderer/utilities/ShapeInfo.ts +525 -0
  136. package/src/main/ts/armyc2/c5isr/renderer/utilities/ShapeUtilities.ts +55 -0
  137. package/src/main/ts/armyc2/c5isr/renderer/utilities/SymbolDimensionInfo.ts +36 -0
  138. package/src/main/ts/armyc2/c5isr/renderer/utilities/SymbolID.ts +1055 -0
  139. package/src/main/ts/armyc2/c5isr/renderer/utilities/SymbolUtilities.ts +2085 -0
  140. package/src/main/ts/armyc2/c5isr/renderer/utilities/TextInfo.ts +157 -0
  141. package/src/main/ts/armyc2/c5isr/web/render/GeoPixelConversion.ts +86 -0
  142. package/src/main/ts/armyc2/c5isr/web/render/MultiPointHandler.ts +3798 -0
  143. package/src/main/ts/armyc2/c5isr/web/render/MultiPointHandlerSVG.ts +412 -0
  144. package/src/main/ts/armyc2/c5isr/web/render/PointConverter.ts +124 -0
  145. package/src/main/ts/armyc2/c5isr/web/render/SymbolModifiers.ts +26 -0
  146. package/src/main/ts/armyc2/c5isr/web/render/WebRenderer.ts +677 -0
  147. package/src/main/ts/armyc2/c5isr/web/render/utilities/JavaRendererUtilities.ts +484 -0
  148. package/src/main/ts/armyc2/c5isr/web/render/utilities/LineInfo.ts +62 -0
  149. package/src/main/ts/armyc2/c5isr/web/render/utilities/SymbolInfo.ts +46 -0
  150. package/src/main/ts/armyc2/c5isr/web/render/utilities/TextInfo.ts +51 -0
  151. package/src/main/ts/org/gavaghan/geodesy/Angle.ts +31 -0
  152. package/src/main/ts/org/gavaghan/geodesy/Ellipsoid.ts +71 -0
  153. package/src/main/ts/org/gavaghan/geodesy/GeodeticCalculator.ts +200 -0
  154. package/src/main/ts/org/gavaghan/geodesy/GeodeticCurve.ts +55 -0
  155. package/src/main/ts/org/gavaghan/geodesy/GeodeticMeasurement.ts +68 -0
  156. package/src/main/ts/org/gavaghan/geodesy/GlobalCoordinates.ts +103 -0
  157. package/src/main/ts/org/gavaghan/geodesy/GlobalPosition.ts +90 -0
  158. package/test/ExportSPImages.js +692 -0
  159. package/test/MPWW.html +556 -0
  160. package/test/MPWorker.js +318 -0
  161. package/test/SPWorker.js +233 -0
  162. package/test/SVGWW.html +363 -0
  163. package/test/singlePointTester3.html +751 -0
  164. package/tsconfig.json +54 -0
  165. package/typedoc.json +30 -0
  166. package/updateVersion.js +21 -0
  167. package/webpack.config.js +34 -0
  168. package/webpackn.config.js +28 -0
  169. package/webpackr.config.js +47 -0
  170. package/webpackw.config.js +23 -0
package/test/MPWW.html ADDED
@@ -0,0 +1,556 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <!-- Meta line required for IE-->
5
+ <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge" /> -->
6
+ <!-- <script src="dist/C5RenDebug.js" type="text/javascript" ></script> -->
7
+ <script src="../dist/C5Ren.js" type="text/javascript" ></script>
8
+
9
+
10
+
11
+
12
+ <script type = "text/javascript">
13
+
14
+ var worker;
15
+ try
16
+ {
17
+ worker = new Worker('MPWorker.js');
18
+ //worker = new Worker('dist/MPWorker.js');
19
+ }
20
+ catch(e)
21
+ {
22
+ console.log("Error in new Worker('MPWorker.js')");
23
+ console.log(e);
24
+ console.log(e.stack);
25
+ }
26
+ var timeAmbush;
27
+ var startWW = null;
28
+ var stopWW = null;
29
+
30
+ function setup()
31
+ {
32
+ document.getElementById("testRender").disabled = true;
33
+ //C5Ren.initialize("/../dist/").then(function(results){document.getElementById("testRender").disabled = false;}).catch(error => {throw error;});
34
+ document.getElementById("testRender").disabled = false;
35
+ }
36
+
37
+ function formatKMLForHTML(kml)
38
+ {
39
+ var formattedKML = "";
40
+ var tempString = kml;
41
+
42
+ var index = 0;
43
+ var start = 0;
44
+
45
+ var index = tempString.indexOf("<");
46
+ while(index >=0)
47
+ {
48
+ tempString = tempString.replace("<","&lt;");
49
+ start = index+1;
50
+ index = tempString.indexOf("<", start);
51
+ }
52
+ var index = tempString.indexOf(">");
53
+ while(index >=0)
54
+ {
55
+ tempString = tempString.replace(">","&gt;");
56
+ start = index+1;
57
+ index = tempString.indexOf(">", start);
58
+ }
59
+
60
+ formattedKML = tempString;
61
+
62
+ return formattedKML;
63
+ }
64
+ function cleartext()
65
+ {
66
+ //alert('clr');
67
+ document.getElementById("contentSpan").innerHTML = "";
68
+ var svgImage = document.getElementById("preview2");
69
+ svgImage.src = null;
70
+ return;
71
+ }
72
+ function testRender()
73
+ {
74
+ //var rendererMP = document.getElementById("SECRenderApplet");
75
+ //var rendererMP = new sec.web.renderer.SECWebRenderer();
76
+ var rendererMP = C5Ren.SECWebRenderer;
77
+
78
+ if (rendererMP !== null) {
79
+
80
+ var renderCount = 1000;
81
+
82
+ /*var foo = new java.lang.StringBuilder("test");
83
+ foo.append("ing");
84
+ console.log(foo);
85
+ console.log(foo.toString());*/
86
+
87
+
88
+
89
+ var modifiers = new Map();
90
+ var attributes = new Map();
91
+ //AMBUSH EXAMPLE
92
+ var symbolCode = "110325000014170000000000000000";//ambush
93
+ //var symbolCode = "110325000015020000000000000000"; //assembly area
94
+ //var symbolCode = "110325000014010000000000000000";//flot
95
+ var controlPoints = "66.26700036208742,30.62755038706961 66.27555681517738,30.64727776502703 66.25654247497746,30.64632704801704";
96
+ //var controlPoints = "66.26700036208742,30.62755038706961 66.27555681517738,30.64727776502703";
97
+
98
+ var bbox = "66.25,30.60,66.28,30.65";//full coverage
99
+ //var bbox = "66.27,30.63,66.28,30.65";//clip
100
+ //var bbox = "-180.0,-90.0,180.0,90.0";
101
+ var scale = 50000.0;
102
+
103
+
104
+ var pixelWidth = 800;
105
+ var pixelHeight = 600;
106
+
107
+ //change this to format JSON to see the different output.
108
+ var format = C5Ren.WebRenderer.OUTPUT_FORMAT_GEOJSON;
109
+ //var format = formatGeoCanvas;
110
+ //var format = formatKML;
111
+ //var format = formatGeoSVG;
112
+
113
+ var cbFormat = document.getElementById("lbFormat").value;
114
+ if(cbFormat == "GeoSVG")
115
+ format = C5Ren.WebRenderer.OUTPUT_FORMAT_GEOSVG;
116
+ else if(cbFormat == "GeoJSON")
117
+ format = C5Ren.WebRenderer.OUTPUT_FORMAT_GEOJSON;
118
+ else
119
+ format = C5Ren.WebRenderer.OUTPUT_FORMAT_KML;
120
+
121
+ //RenderSymbol2D recommended for 2D maps. KML or JSON format will work.
122
+ //KML is being worked on more due to google earth in bcweb. We are not actively using JSON for anything.
123
+ //ID, Name and Description are optional when using JSON format.
124
+
125
+ var json = null;
126
+ var data = null;
127
+ var data = {};
128
+ data.id = "ID";
129
+ data.name = "Name";
130
+ data.description = "description";
131
+ data.symbolID = symbolCode;
132
+ data.points = controlPoints;
133
+ //data.altMode = "absolute";//comment out to render as 2D
134
+ data.scale = scale;
135
+ data.bbox = bbox;
136
+ data.modifiers = modifiers;//{"AM":[3000,10000],"AN":[315,45],"X":[0],"LOOKAT":true};
137
+ data.attributes = attributes;
138
+ data.format = format;
139
+ data.pixelHeight = pixelHeight;
140
+ data.pixelWidth = pixelWidth;
141
+ data.batch = [];
142
+
143
+ for(var i = 0; i < renderCount; i++)
144
+ {
145
+ //json = rendererMP.RenderSymbol2D("ID","Name","Description", symbolCode, controlPoints, pixelWidth, pixelHeight, bbox, modifiers,format);
146
+ var item = {id:"ID",name:"name",description:"description",symbolID:symbolCode,points:controlPoints,modifiers:modifiers,attributes:attributes};
147
+ data.batch.push(item);
148
+ }
149
+ startWW = Date.now();
150
+ worker.onerror = function(e)
151
+ {
152
+ console.log(e);
153
+ }
154
+ worker.onmessage = function(e)
155
+ {
156
+ stopWW = Date.now();
157
+ timeAmbush = (stopWW-startWW) / 1000 / renderCount;
158
+ //console.log(timeAmbush);
159
+ var totalAmbush = (stopWW-startWW) / 1000;
160
+ document.getElementById("contentSpan").innerHTML = "";
161
+ document.getElementById("contentSpan").innerHTML += "<br/><br/>Ambush avg: "+ timeAmbush +" <br/>";
162
+ document.getElementById("contentSpan").innerHTML += "Ambush x" + renderCount + " total: "+ totalAmbush +" <br/>";
163
+
164
+ if(e.data.id)//not a batch call
165
+ {
166
+ result = e.data.result;
167
+ document.getElementById("contentSpan").innerHTML += "<br/><br/>Symbol via Web Worker: <br/>";
168
+ }
169
+ else//batch call
170
+ {
171
+ document.getElementById("contentSpan").innerHTML += "<br/><br/>Batch Symbol via Web Worker: <br/>";
172
+ result = e.data.result[0];
173
+ }
174
+ updatePageResults(result);//*/
175
+ }
176
+ worker.postMessage(data)
177
+
178
+ //can also pass parameter saying which version of MilStd to use.
179
+ //var json = rendererMP.RenderSymbol2D("ID","Name","Description", symbolCode, controlPoints, pixelWidth, pixelHeight, bbox, modifiers,format,symStd);
180
+
181
+ function updatePageResults(data)
182
+ {
183
+ if(format === C5Ren.WebRenderer.OUTPUT_FORMAT_GEOJSON)
184
+ {
185
+ document.getElementById("contentSpan").innerHTML += "JSON Format:<br/>";
186
+ if (data == null || data == "")
187
+ document.getElementById("contentSpan").innerHTML += "json empty";
188
+ else
189
+ document.getElementById("contentSpan").innerHTML += data.geojson;
190
+ }
191
+ else if(format === C5Ren.WebRenderer.OUTPUT_FORMAT_GEOSVG)
192
+ {
193
+ var svg = result.svg;
194
+ var svgImage = document.getElementById("preview2");
195
+ svgImage.width = result.width;
196
+ svgImage.height = result.height;
197
+
198
+ //svgImage.src = "data:image/svg+xml;base64,"+window.btoa(svg);//svg;
199
+ svgImage.src = result.b64;
200
+ document.getElementById("contentSpan").innerHTML += "<plaintext>" + svg;// + "</plaintext>";
201
+ }
202
+ else// if formated as KML
203
+ {
204
+ document.getElementById("contentSpan").innerHTML += "KML Format:<br/>";
205
+ //the following is just so you can view the KML properly on the html page.
206
+ //this isn't something you'd normally do.
207
+ if (data == null || data == "")
208
+ document.getElementById("contentSpan").innerHTML += "kml empty";
209
+ else
210
+ {
211
+ var formattedKML = "";
212
+
213
+ formattedKML = formatKMLForHTML(data);
214
+
215
+ document.getElementById("contentSpan").innerHTML += formattedKML;
216
+ //document.getElementById("XMLHolder").innerHTML += json;//parseXMLString(json);
217
+ }
218
+ }
219
+ }
220
+ /*
221
+ armyc2.c2sd.renderer.utilities.ErrorLogger.LogMessage("multiPoints3.html","testRender","ASSEMBLY AREA");
222
+ //ASSEMBLY AREA EXAMPLE
223
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
224
+ //G*G*GLB---****X
225
+ //var symbolCode2 = "GFGPGLB-------X"; //boundary
226
+ //var symbolCode2 = "GHGPGAG-------X"; //general area
227
+ var symbolCode2 = "GHGPGAA-------X"; //assembly area
228
+ //var symbolCode2 = "GHMPOADC--****X"; //antitank ditch, complete
229
+ //var symbolCode2 = "GFTPL---------X"; //delay
230
+ //var symbolCode2 = "GHGPSLA-------X"; //ambush
231
+ var controlPoints2 = "66.26700036208742,30.62755038706961 66.27555681517738,30.64727776502703 66.25654247497746,30.64632704801704";
232
+ var bbox2 = "66.26,30.627,66.27,30.63"; //will show clipping at work
233
+ //var bbox2 = "66.25,30.627,66.27,30.63";//whole symbol will be calculated
234
+ //var bbox2 = "-180.0,-90.0,180.0,90.0";
235
+ var scale2 = 50000.0;
236
+ //modifiers = "{\"modifiers\":{\"uniqueDesignation1\":\"T modifier\"}}";
237
+ modifiers = "{\"modifiers\":{\"fillColor\":\"FFFFFF\",\"lineColor\":\"00FF00\"}}";
238
+
239
+ //format = formatJSON;
240
+ format = formatKML;
241
+ var json2;
242
+ var start = Date.now();
243
+ if(format == formatKML)
244
+ {
245
+ //RenderSymbol for 3D Google Earth. KML format recommended.
246
+ for(var i = 0; i < renderCount; i++){
247
+ json2 = rendererMP.RenderSymbol("ID","Name","Description", symbolCode2, controlPoints2, "clampToGround",scale2, bbox2, modifiers,format);
248
+ }
249
+ }
250
+ else
251
+ {
252
+ //RenderSymbol2D for 2D maps, JSON Recommended for simpler output.
253
+ for(var i = 0; i < renderCount; i++){
254
+ json2 = rendererMP.RenderSymbol2D("ID","Name","Description", symbolCode2, controlPoints2, pixelWidth, pixelHeight, bbox2, modifiers,format);
255
+ }
256
+ }
257
+ var stop = Date.now();
258
+ var timeAA = (stop-start)/1000 / renderCount;
259
+
260
+ document.getElementById("contentSpan").innerHTML += "<br/><br/>Assembly Area: <br/>";
261
+
262
+ if(format == formatJSON)
263
+ {
264
+ document.getElementById("contentSpan").innerHTML += "JSON Format:<br/>";
265
+ if (json2 == null || json2 == "")
266
+ document.getElementById("contentSpan").innerHTML += "json empty";
267
+ else
268
+ {
269
+ document.getElementById("contentSpan").innerHTML += json2;
270
+ }
271
+ }
272
+ else// if formated as KML
273
+ {
274
+ document.getElementById("contentSpan").innerHTML += "KML Format:<br/>";
275
+ //the following is just so you can view the KML properly on the html page.
276
+ //this isn't something you'd normally do.
277
+ if (json2 == null || json2 == "")
278
+ document.getElementById("contentSpan").innerHTML += "kml empty";
279
+ else
280
+ {
281
+ var formattedKML = "";
282
+ formattedKML = formatKMLForHTML(json2);
283
+
284
+ document.getElementById("contentSpan").innerHTML += formattedKML;
285
+ //document.getElementById("XMLHolder").innerHTML += json;//parseXMLString(json);
286
+ }
287
+ }
288
+ armyc2.c2sd.renderer.utilities.ErrorLogger.LogMessage("multiPoints3.html","testRender","SECTOR RANGE FAN");
289
+ //SECTOR RANGE FAN EXAMPLE
290
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
291
+
292
+ var symbolCode3 = "GFFPAXS---****X"; //sector range fan
293
+
294
+ var controlPoints3 = "66.26700036208742,30.62755038706961";
295
+ var bbox3 = "66.25,30.627,66.27,30.63";//whole symbol will be calculated
296
+ //var bbox2 = "-180.0,-90.0,180.0,90.0";
297
+ var scale3 = 50000.0;
298
+ //distance (AM), azimuth (AN), and altitudeDepth (X) can all have multiple values so they are enclosed in brackets.
299
+ modifiers = "{\"modifiers\":{\"distance\":[300,1000],\"azimuth\":[315,45],\"altitudeDepth\":[0]}}";
300
+
301
+ //format = formatJSON;
302
+ format = formatKML;
303
+ var json3;
304
+ start = Date.now();
305
+ if(format == formatKML)
306
+ {
307
+ //RenderSymbol for Google Earth. KML format recommended.
308
+ for(var i = 0; i < renderCount; i++){
309
+ json3 = rendererMP.RenderSymbol("ID","Name","Description", symbolCode3, controlPoints3, "clampToGround",scale3, bbox3, modifiers,format);
310
+ }
311
+ }
312
+ else
313
+ {
314
+ //RenderSymbol2D for 2D maps, JSON Recommended for simpler output.
315
+ for(var i = 0; i < renderCount; i++){
316
+ json3 = rendererMP.RenderSymbol2D("ID","Name","Description", symbolCode3, controlPoints3, pixelWidth, pixelHeight, bbox3, modifiers,format);
317
+ }
318
+ }
319
+ stop = Date.now();
320
+ var timeSRF = (stop-start)/1000 / renderCount;
321
+ document.getElementById("contentSpan").innerHTML += "<br/><br/>Sector Range Fan: <br/>";
322
+
323
+ if(format == formatJSON)
324
+ {
325
+ document.getElementById("contentSpan").innerHTML += "JSON Format:<br/>";
326
+ if (json3 == null || json3 == "")
327
+ document.getElementById("contentSpan").innerHTML += "json empty";
328
+ else
329
+ {
330
+ document.getElementById("contentSpan").innerHTML += json3;
331
+ }
332
+ }
333
+ else// if formated as KML
334
+ {
335
+ document.getElementById("contentSpan").innerHTML += "KML Format:<br/>";
336
+ //the following is just so you can view the KML properly on the html page.
337
+ //this isn't something you'd normally do.
338
+ if (json3 == null || json3 == "")
339
+ document.getElementById("contentSpan").innerHTML += "kml empty";
340
+ else
341
+ {
342
+ var formattedKML = "";
343
+ formattedKML = formatKMLForHTML(json3);
344
+
345
+ document.getElementById("contentSpan").innerHTML += formattedKML;
346
+ //document.getElementById("XMLHolder").innerHTML += json;//parseXMLString(json);
347
+ }
348
+ }
349
+
350
+ ////////////////////////////////////////////////////////////////////////////////////////
351
+ armyc2.c2sd.renderer.utilities.ErrorLogger.LogMessage("multiPoints3.html","testRender","FLOT");
352
+ //FLOT EXAMPLE
353
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
354
+
355
+ var symbolCode4 = "GHGPGLF-------X"; //flot
356
+
357
+ var controlPoints4 = "8.40185525443334,38.95854638813517 15.124217101733166,36.694658205882995 18.49694847529253,40.113591379080155 8.725267851897936,42.44678226078903 8.217048055882143,40.76041657400935";
358
+ var bbox4 = "5.76417051405295,34.86552015439102,20.291017309471272,45.188646318100695";
359
+ //var bbox2 = "-180.0,-90.0,180.0,90.0";
360
+ var scale4 = 5869879.2;
361
+ //distance (AM), azimuth (AN), and altitudeDepth (X) can all have multiple values so they are enclosed in brackets.
362
+ modifiers = "{\"modifiers\":{\"lineColor\":\"ffff0000\"}}";
363
+
364
+ //format = formatJSON;
365
+ format = formatKML;
366
+
367
+ var json4;
368
+ var start = Date.now();
369
+ if(format === formatKML)
370
+ {
371
+ //RenderSymbol for Google Earth. KML format recommended.
372
+ for(var i = 0; i < renderCount; i++){
373
+ json4 = rendererMP.RenderSymbol("ID","Name","Description", symbolCode4, controlPoints4, "clampToGround",scale4, bbox4, modifiers,format);
374
+ }
375
+ }
376
+ else
377
+ {
378
+ //RenderSymbol2D for 2D maps, JSON Recommended for simpler output.
379
+ for(var i = 0; i < renderCount; i++){
380
+ json4 = rendererMP.RenderSymbol2D("ID","Name","Description", symbolCode4, controlPoints4, pixelWidth, pixelHeight, bbox4, modifiers,format);
381
+ }
382
+ }
383
+ var stop = Date.now();
384
+ var time = stop - start;
385
+ var timeFlot = (stop-start)/1000 / renderCount;
386
+ //alert('Render 1k symbols: ' + (time/1000));
387
+ //console.log('Render 1k symbols: ' + (time/1000));
388
+ document.getElementById("contentSpan").innerHTML += "<br/><br/>FLOT: <br/>";
389
+
390
+ if(format === formatJSON)
391
+ {
392
+ document.getElementById("contentSpan").innerHTML += "JSON Format:<br/>";
393
+ if (json4 === null || json4 === "")
394
+ document.getElementById("contentSpan").innerHTML += "json empty";
395
+ else
396
+ {
397
+ document.getElementById("contentSpan").innerHTML += json4;
398
+ }
399
+ }
400
+ else// if formated as KML
401
+ {
402
+ document.getElementById("contentSpan").innerHTML += "KML Format:<br/>";
403
+ //the following is just so you can view the KML properly on the html page.
404
+ //this isn't something you'd normally do.
405
+ if (json4 == null || json4 == "")
406
+ document.getElementById("contentSpan").innerHTML += "kml empty";
407
+ else
408
+ {
409
+ var formattedKML = "";
410
+ formattedKML = formatKMLForHTML(json4);
411
+
412
+ document.getElementById("contentSpan").innerHTML += formattedKML;
413
+ //document.getElementById("XMLHolder").innerHTML += json;//parseXMLString(json);
414
+ }
415
+ }
416
+ */
417
+ //document.getElementById("contentSpan").innerHTML += "<br/><br/>Ambush: "+ timeAmbush +" <br/>";
418
+ /*document.getElementById("contentSpan").innerHTML += "Assembly Area: "+ timeAA +" <br/>";
419
+ document.getElementById("contentSpan").innerHTML += "Sector Range Fan: "+ timeSRF +" <br/>";
420
+ document.getElementById("contentSpan").innerHTML += "FLOT: "+ timeFlot +" <br/>";*/
421
+
422
+ //webworker
423
+ /*var json4;
424
+ var data = {};
425
+ data.id = "ID";
426
+ data.name = "Name";
427
+ data.description = "description";
428
+ data.symbolID = symbolCode4;
429
+ data.points = controlPoints4;
430
+ data.altMode = "absolute";
431
+ data.scale = scale4;
432
+ data.bbox = bbox4;
433
+ data.modifiers = modifiers;
434
+ data.format = format;
435
+ data.pHeight = pixelHeight;
436
+ data.pWidth = pixelWidth;
437
+
438
+
439
+ var worker = new Worker('worker.js');
440
+ worker.postMessage(data);
441
+ worker.onmessage = function(e)
442
+ {
443
+ json4 = e.data;
444
+ document.getElementById("contentSpan").innerHTML += "<br/><br/>Sector Range Fan: <br/>";
445
+
446
+ if(format == formatJSON)
447
+ {
448
+ document.getElementById("contentSpan").innerHTML += "JSON Format:<br/>";
449
+ if (json4 == null || json4 == "")
450
+ document.getElementById("contentSpan").innerHTML += "json empty";
451
+ else
452
+ {
453
+ document.getElementById("contentSpan").innerHTML += json4;
454
+ }
455
+ }
456
+ else// if formated as KML
457
+ {
458
+ document.getElementById("contentSpan").innerHTML += "KML Format:<br/>";
459
+ //the following is just so you can view the KML properly on the html page.
460
+ //this isn't something you'd normally do.
461
+ if (json4 == null || json4 == "")
462
+ document.getElementById("contentSpan").innerHTML += "kml empty";
463
+ else
464
+ {
465
+ var formattedKML = "";
466
+ formattedKML = formatKMLForHTML(json4);
467
+
468
+ document.getElementById("contentSpan").innerHTML += formattedKML;
469
+ //document.getElementById("XMLHolder").innerHTML += json;//parseXMLString(json);
470
+ }
471
+ }
472
+
473
+ };//*/
474
+
475
+ ////////////////////////////////////////////////////////////////////////////////////////
476
+ //point performance test
477
+ /*
478
+ //var a = new Array();
479
+ var a = new java.util.ArrayList();
480
+ //var b = new Array();
481
+ var b = new java.util.ArrayList();//Array();
482
+ var c = new Array();
483
+ var count = 10000;
484
+ var startA = Date.now();
485
+ for(var i =0; i<count; i++)
486
+ {
487
+ //a.push(new armyc2.c2sd.graphics2d.Point2D(300,500));
488
+ //a[i].getY();
489
+ //a[i].getY();
490
+
491
+ a.add(new armyc2.c2sd.graphics2d.Point2D(300,500));
492
+ a.get(i).getX();
493
+ a.get(i).getY();
494
+ }
495
+ var stopA = Date.now();
496
+ var startB = Date.now();
497
+ var pt2dtemp = null;
498
+ for(var j =0; j<count; j++)
499
+ {
500
+
501
+ pt2dtemp = new armyc2.c2sd.graphics2d.Point2D();
502
+ pt2dtemp.setLocation(300,500);
503
+
504
+ //b.push(pt2dtemp);
505
+ //b[j].getY();
506
+ //b[j].getY();
507
+
508
+ b.add(pt2dtemp);
509
+ b.get(j).getX();
510
+ b.get(j).getY();
511
+ }
512
+ var stopB = Date.now();
513
+ var startC = Date.now();
514
+ for(var k =0; k<count; k++)
515
+ {
516
+ c.push(new milstd.renderer.SO.Point(300,500));
517
+ c[k].getX();
518
+ c[k].getY();
519
+ }
520
+ var stopC = Date.now();
521
+
522
+ var timeA = "<br/><br/>Point2D(x,y): <br/>" + (stopA - startA)/1000;
523
+ var timeB = "<br/><br/>Point2D(): <br/>" + (stopB - startB)/1000;
524
+ var timeC = "<br/><br/>SO.Point <br/>" + (stopC - startC)/1000;
525
+
526
+ //alert('Render 1k symbols: ' + (time/1000));
527
+ //console.log('Render 1k symbols: ' + (time/1000));
528
+ document.getElementById("contentSpan").innerHTML += timeA;
529
+ document.getElementById("contentSpan").innerHTML += timeB;
530
+ document.getElementById("contentSpan").innerHTML += timeC;
531
+ //*/
532
+ ////////////////////////////////////////////////////////////////////////////////////////
533
+
534
+ } //end if
535
+ }
536
+
537
+
538
+ </script>
539
+ </head>
540
+ <body onload="setup();">
541
+ <img id="preview2" src="" alt="" height="100%" width="100%"><br>
542
+ Format: <select id = lbFormat>
543
+ <option>GeoJSON</option>
544
+ <option>GeoSVG</option>
545
+ </select>
546
+ <button id="testRender" type='button' onclick='testRender()'>Test Multipoint</button>
547
+ <button type='button' onclick='cleartext()'>Clear</button>
548
+
549
+ <span id='contentSpan'/>
550
+
551
+
552
+
553
+
554
+ </body>
555
+
556
+ </html>