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

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 (168) hide show
  1. package/{dist/armyc2.c5isr.renderer-mil-sym-ts-web-2.2.0.tgz → armyc2.c5isr.renderer-mil-sym-ts-web-2.2.1.tgz} +0 -0
  2. package/package.json +15 -39
  3. package/buildNode.bat +0 -2
  4. package/buildWeb.bat +0 -2
  5. package/dist/LICENSE +0 -201
  6. package/dist/README.md +0 -57
  7. package/dist/package.json +0 -16
  8. package/index.ts +0 -169
  9. package/package.bak +0 -50
  10. package/package.node.json +0 -43
  11. package/package.pack.json +0 -19
  12. package/package.packWeb.json +0 -16
  13. package/package.web.json +0 -40
  14. package/src/main/ts/android/graphics/Bitmap.ts +0 -7
  15. package/src/main/ts/android/graphics/Paint.ts +0 -26
  16. package/src/main/ts/android/graphics/Path.ts +0 -78
  17. package/src/main/ts/android/graphics/PointF.ts +0 -14
  18. package/src/main/ts/android/graphics/Rect.ts +0 -18
  19. package/src/main/ts/android/graphics/RectF.ts +0 -50
  20. package/src/main/ts/android/graphics/Region.ts +0 -36
  21. package/src/main/ts/android/graphics/Typeface.ts +0 -11
  22. package/src/main/ts/armyc2/c5isr/JavaLineArray/BasicShapes.ts +0 -99
  23. package/src/main/ts/armyc2/c5isr/JavaLineArray/CChannelPoints2.ts +0 -34
  24. package/src/main/ts/armyc2/c5isr/JavaLineArray/CELineArray.ts +0 -193
  25. package/src/main/ts/armyc2/c5isr/JavaLineArray/Channels.ts +0 -2971
  26. package/src/main/ts/armyc2/c5isr/JavaLineArray/DISMSupport.ts +0 -4008
  27. package/src/main/ts/armyc2/c5isr/JavaLineArray/POINT2.ts +0 -93
  28. package/src/main/ts/armyc2/c5isr/JavaLineArray/Shape2.ts +0 -89
  29. package/src/main/ts/armyc2/c5isr/JavaLineArray/TacticalLines.ts +0 -515
  30. package/src/main/ts/armyc2/c5isr/JavaLineArray/arraysupport.ts +0 -5403
  31. package/src/main/ts/armyc2/c5isr/JavaLineArray/countsupport.ts +0 -1084
  32. package/src/main/ts/armyc2/c5isr/JavaLineArray/flot.ts +0 -2173
  33. package/src/main/ts/armyc2/c5isr/JavaLineArray/lineutility.ts +0 -4934
  34. package/src/main/ts/armyc2/c5isr/JavaLineArray/ref.ts +0 -7
  35. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/Modifier2.ts +0 -5601
  36. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/P1.ts +0 -14
  37. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/TGLight.ts +0 -648
  38. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/clsChannelUtility.ts +0 -647
  39. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/clsMETOC.ts +0 -2994
  40. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/clsUtility.ts +0 -2663
  41. package/src/main/ts/armyc2/c5isr/JavaTacticalRenderer/mdlGeodesic.ts +0 -669
  42. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsClipPolygon2.ts +0 -971
  43. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsClipQuad.ts +0 -871
  44. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsRenderer.ts +0 -3507
  45. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsRenderer2.ts +0 -500
  46. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsUtility.ts +0 -1089
  47. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsUtilityCPOF.ts +0 -2656
  48. package/src/main/ts/armyc2/c5isr/RenderMultipoints/clsUtilityGE.ts +0 -1419
  49. package/src/main/ts/armyc2/c5isr/data/genc.json +0 -1407
  50. package/src/main/ts/armyc2/c5isr/data/msd.json +0 -17311
  51. package/src/main/ts/armyc2/c5isr/data/mse.json +0 -18500
  52. package/src/main/ts/armyc2/c5isr/data/svgd.json +0 -31214
  53. package/src/main/ts/armyc2/c5isr/data/svge.json +0 -30558
  54. package/src/main/ts/armyc2/c5isr/graphics2d/AffineTransform.ts +0 -10
  55. package/src/main/ts/armyc2/c5isr/graphics2d/Area.ts +0 -437
  56. package/src/main/ts/armyc2/c5isr/graphics2d/BasicStroke.ts +0 -429
  57. package/src/main/ts/armyc2/c5isr/graphics2d/BasicTypes.ts +0 -7
  58. package/src/main/ts/armyc2/c5isr/graphics2d/BufferedImage.ts +0 -35
  59. package/src/main/ts/armyc2/c5isr/graphics2d/Font.ts +0 -111
  60. package/src/main/ts/armyc2/c5isr/graphics2d/FontMetrics.ts +0 -29
  61. package/src/main/ts/armyc2/c5isr/graphics2d/FontRenderContext.ts +0 -18
  62. package/src/main/ts/armyc2/c5isr/graphics2d/GeneralPath.ts +0 -211
  63. package/src/main/ts/armyc2/c5isr/graphics2d/Graphics2D.ts +0 -80
  64. package/src/main/ts/armyc2/c5isr/graphics2d/IPathIterator.ts +0 -33
  65. package/src/main/ts/armyc2/c5isr/graphics2d/ImageIO.ts +0 -16
  66. package/src/main/ts/armyc2/c5isr/graphics2d/Line2D.ts +0 -726
  67. package/src/main/ts/armyc2/c5isr/graphics2d/PathIterator.ts +0 -141
  68. package/src/main/ts/armyc2/c5isr/graphics2d/Point.ts +0 -112
  69. package/src/main/ts/armyc2/c5isr/graphics2d/Point2D.ts +0 -261
  70. package/src/main/ts/armyc2/c5isr/graphics2d/Polygon.ts +0 -391
  71. package/src/main/ts/armyc2/c5isr/graphics2d/Rectangle.ts +0 -567
  72. package/src/main/ts/armyc2/c5isr/graphics2d/Rectangle2D.ts +0 -445
  73. package/src/main/ts/armyc2/c5isr/graphics2d/Shape.ts +0 -31
  74. package/src/main/ts/armyc2/c5isr/graphics2d/Stroke.ts +0 -18
  75. package/src/main/ts/armyc2/c5isr/graphics2d/TextLayout.ts +0 -45
  76. package/src/main/ts/armyc2/c5isr/graphics2d/TexturePaint.ts +0 -25
  77. package/src/main/ts/armyc2/c5isr/renderer/IIconRenderer.ts +0 -15
  78. package/src/main/ts/armyc2/c5isr/renderer/IconRenderer.ts +0 -22
  79. package/src/main/ts/armyc2/c5isr/renderer/MilStdIconRenderer.ts +0 -269
  80. package/src/main/ts/armyc2/c5isr/renderer/ModifierRenderer.ts +0 -9882
  81. package/src/main/ts/armyc2/c5isr/renderer/PatternFillRenderer.ts +0 -146
  82. package/src/main/ts/armyc2/c5isr/renderer/SinglePointSVGRenderer.ts +0 -1265
  83. package/src/main/ts/armyc2/c5isr/renderer/shapes/arc.ts +0 -64
  84. package/src/main/ts/armyc2/c5isr/renderer/shapes/bcurve.ts +0 -95
  85. package/src/main/ts/armyc2/c5isr/renderer/shapes/ellipse.ts +0 -93
  86. package/src/main/ts/armyc2/c5isr/renderer/shapes/line.ts +0 -114
  87. package/src/main/ts/armyc2/c5isr/renderer/shapes/path.ts +0 -555
  88. package/src/main/ts/armyc2/c5isr/renderer/shapes/pathiterator.ts +0 -62
  89. package/src/main/ts/armyc2/c5isr/renderer/shapes/point.ts +0 -120
  90. package/src/main/ts/armyc2/c5isr/renderer/shapes/rectangle.ts +0 -431
  91. package/src/main/ts/armyc2/c5isr/renderer/shapes/roundedrectangle.ts +0 -99
  92. package/src/main/ts/armyc2/c5isr/renderer/shapes/types.ts +0 -25
  93. package/src/main/ts/armyc2/c5isr/renderer/shapes/utilities.ts +0 -203
  94. package/src/main/ts/armyc2/c5isr/renderer/utilities/AffiliationColors.ts +0 -104
  95. package/src/main/ts/armyc2/c5isr/renderer/utilities/Color.ts +0 -481
  96. package/src/main/ts/armyc2/c5isr/renderer/utilities/DistanceUnit.ts +0 -40
  97. package/src/main/ts/armyc2/c5isr/renderer/utilities/DrawRules.ts +0 -1323
  98. package/src/main/ts/armyc2/c5isr/renderer/utilities/EntityCode.ts +0 -51
  99. package/src/main/ts/armyc2/c5isr/renderer/utilities/ErrorLogger.ts +0 -736
  100. package/src/main/ts/armyc2/c5isr/renderer/utilities/GENCLookup.ts +0 -106
  101. package/src/main/ts/armyc2/c5isr/renderer/utilities/GeoPixelConversion3D.ts +0 -84
  102. package/src/main/ts/armyc2/c5isr/renderer/utilities/IMultiPointRenderer.ts +0 -87
  103. package/src/main/ts/armyc2/c5isr/renderer/utilities/IPointConversion.ts +0 -34
  104. package/src/main/ts/armyc2/c5isr/renderer/utilities/ImageInfo.ts +0 -324
  105. package/src/main/ts/armyc2/c5isr/renderer/utilities/LRUCache.ts +0 -127
  106. package/src/main/ts/armyc2/c5isr/renderer/utilities/LRUEntry.ts +0 -18
  107. package/src/main/ts/armyc2/c5isr/renderer/utilities/LogLevel.ts +0 -111
  108. package/src/main/ts/armyc2/c5isr/renderer/utilities/MODrawRules.ts +0 -219
  109. package/src/main/ts/armyc2/c5isr/renderer/utilities/MSInfo.ts +0 -1008
  110. package/src/main/ts/armyc2/c5isr/renderer/utilities/MSLookup.ts +0 -882
  111. package/src/main/ts/armyc2/c5isr/renderer/utilities/MilStdAttributes.ts +0 -380
  112. package/src/main/ts/armyc2/c5isr/renderer/utilities/MilStdSymbol.ts +0 -797
  113. package/src/main/ts/armyc2/c5isr/renderer/utilities/Modifiers.ts +0 -1699
  114. package/src/main/ts/armyc2/c5isr/renderer/utilities/PointConversion.ts +0 -178
  115. package/src/main/ts/armyc2/c5isr/renderer/utilities/PointConversionDummy.ts +0 -45
  116. package/src/main/ts/armyc2/c5isr/renderer/utilities/PointConverter3D.ts +0 -126
  117. package/src/main/ts/armyc2/c5isr/renderer/utilities/RectUtilities.ts +0 -118
  118. package/src/main/ts/armyc2/c5isr/renderer/utilities/RendererException.ts +0 -11
  119. package/src/main/ts/armyc2/c5isr/renderer/utilities/RendererSettings.ts +0 -1201
  120. package/src/main/ts/armyc2/c5isr/renderer/utilities/RendererUtilities.ts +0 -591
  121. package/src/main/ts/armyc2/c5isr/renderer/utilities/SVGInfo.ts +0 -29
  122. package/src/main/ts/armyc2/c5isr/renderer/utilities/SVGLookup.ts +0 -753
  123. package/src/main/ts/armyc2/c5isr/renderer/utilities/SVGSymbolInfo.ts +0 -137
  124. package/src/main/ts/armyc2/c5isr/renderer/utilities/SVGTextInfo.ts +0 -438
  125. package/src/main/ts/armyc2/c5isr/renderer/utilities/SettingsChangedEvent.ts +0 -19
  126. package/src/main/ts/armyc2/c5isr/renderer/utilities/SettingsChangedEventListener.ts +0 -10
  127. package/src/main/ts/armyc2/c5isr/renderer/utilities/SettingsEventListener.ts +0 -5
  128. package/src/main/ts/armyc2/c5isr/renderer/utilities/Shape2SVG.ts +0 -404
  129. package/src/main/ts/armyc2/c5isr/renderer/utilities/ShapeInfo.ts +0 -525
  130. package/src/main/ts/armyc2/c5isr/renderer/utilities/ShapeUtilities.ts +0 -55
  131. package/src/main/ts/armyc2/c5isr/renderer/utilities/SymbolDimensionInfo.ts +0 -36
  132. package/src/main/ts/armyc2/c5isr/renderer/utilities/SymbolID.ts +0 -1055
  133. package/src/main/ts/armyc2/c5isr/renderer/utilities/SymbolUtilities.ts +0 -2085
  134. package/src/main/ts/armyc2/c5isr/renderer/utilities/TextInfo.ts +0 -157
  135. package/src/main/ts/armyc2/c5isr/web/render/GeoPixelConversion.ts +0 -86
  136. package/src/main/ts/armyc2/c5isr/web/render/MultiPointHandler.ts +0 -3798
  137. package/src/main/ts/armyc2/c5isr/web/render/MultiPointHandlerSVG.ts +0 -412
  138. package/src/main/ts/armyc2/c5isr/web/render/PointConverter.ts +0 -124
  139. package/src/main/ts/armyc2/c5isr/web/render/SymbolModifiers.ts +0 -26
  140. package/src/main/ts/armyc2/c5isr/web/render/WebRenderer.ts +0 -677
  141. package/src/main/ts/armyc2/c5isr/web/render/utilities/JavaRendererUtilities.ts +0 -484
  142. package/src/main/ts/armyc2/c5isr/web/render/utilities/LineInfo.ts +0 -62
  143. package/src/main/ts/armyc2/c5isr/web/render/utilities/SymbolInfo.ts +0 -46
  144. package/src/main/ts/armyc2/c5isr/web/render/utilities/TextInfo.ts +0 -51
  145. package/src/main/ts/org/gavaghan/geodesy/Angle.ts +0 -31
  146. package/src/main/ts/org/gavaghan/geodesy/Ellipsoid.ts +0 -71
  147. package/src/main/ts/org/gavaghan/geodesy/GeodeticCalculator.ts +0 -200
  148. package/src/main/ts/org/gavaghan/geodesy/GeodeticCurve.ts +0 -55
  149. package/src/main/ts/org/gavaghan/geodesy/GeodeticMeasurement.ts +0 -68
  150. package/src/main/ts/org/gavaghan/geodesy/GlobalCoordinates.ts +0 -103
  151. package/src/main/ts/org/gavaghan/geodesy/GlobalPosition.ts +0 -90
  152. package/test/ExportSPImages.js +0 -692
  153. package/test/MPWW.html +0 -556
  154. package/test/MPWorker.js +0 -318
  155. package/test/SPWorker.js +0 -233
  156. package/test/SVGWW.html +0 -363
  157. package/test/singlePointTester3.html +0 -751
  158. package/tsconfig.json +0 -54
  159. package/typedoc.json +0 -30
  160. package/updateVersion.js +0 -21
  161. package/webpack.config.js +0 -34
  162. package/webpackn.config.js +0 -28
  163. package/webpackr.config.js +0 -47
  164. package/webpackw.config.js +0 -23
  165. /package/{dist/C5Ren.d.ts → C5Ren.d.ts} +0 -0
  166. /package/{dist/C5Ren.js → C5Ren.js} +0 -0
  167. /package/{dist/C5Ren.js.map → C5Ren.js.map} +0 -0
  168. /package/{dist/manifest.json → manifest.json} +0 -0
@@ -1,71 +0,0 @@
1
- /*
2
- * Geodesy by Mike Gavaghan
3
- *
4
- * http://www.gavaghan.org/blog/free-source-code/geodesy-library-vincentys-formula/
5
- *
6
- * Copyright 2007 Mike Gavaghan - mike@gavaghan.org
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- */
20
-
21
- export class Ellipsoid {
22
- private readonly mSemiMajorAxis;
23
- private readonly mSemiMinorAxis;
24
- private readonly mFlattening;
25
- private readonly mInverseFlattening;
26
-
27
- constructor(semiMajor: number, semiMinor: number, flattening: number, inverseFlattening: number) {
28
- this.mSemiMajorAxis = semiMajor;
29
- this.mSemiMinorAxis = semiMinor;
30
- this.mFlattening = flattening;
31
- this.mInverseFlattening = inverseFlattening
32
- }
33
-
34
- public getSemiMajorAxis(): number {
35
- return this.mSemiMajorAxis;
36
- }
37
-
38
- public getSemiMinorAxis(): number {
39
- return this.mSemiMinorAxis;
40
- }
41
-
42
- public getFlattening(): number {
43
- return this.mFlattening;
44
- }
45
-
46
- public getInverseFlattening(): number {
47
- return this.mInverseFlattening;
48
- }
49
-
50
-
51
- public static fromAAndInverseF(semiMajor: number, inverseFlattening: number): Ellipsoid {
52
- var f = 1.0 / inverseFlattening;
53
- var b = (1.0 - f) * semiMajor;
54
- return new Ellipsoid(semiMajor, b, f, inverseFlattening);
55
- }
56
-
57
- public static fromAAndF(semiMajor: number, flattening: number): Ellipsoid {
58
- var inverseF = 1.0 / flattening;
59
- var b = (1.0 - flattening) * semiMajor;
60
- return new Ellipsoid(semiMajor, b, flattening, inverseF);
61
- }
62
-
63
- public static readonly WGS84 = Ellipsoid.fromAAndInverseF(6378137.0, 298.257223563);
64
- public static readonly GRS80 = Ellipsoid.fromAAndInverseF(6378137.0, 298.257222101);
65
- public static readonly GRS67 = Ellipsoid.fromAAndInverseF(6378160.0, 298.25);
66
- public static readonly ANS = Ellipsoid.fromAAndInverseF(6378160.0, 298.25);
67
- public static readonly WGS72 = Ellipsoid.fromAAndInverseF(6378135.0, 298.26);
68
- public static readonly Clarke1858 = Ellipsoid.fromAAndInverseF(6378293.645, 294.26);
69
- public static readonly Clarke1880 = Ellipsoid.fromAAndInverseF(6378249.145, 293.465);
70
- public static readonly Sphere = Ellipsoid.fromAAndF(6371000, 0.0);
71
- }
@@ -1,200 +0,0 @@
1
- /*
2
- * Geodesy by Mike Gavaghan
3
- *
4
- * http://www.gavaghan.org/blog/free-source-code/geodesy-library-vincentys-formula/
5
- *
6
- * Copyright 2007 Mike Gavaghan - mike@gavaghan.org
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- */
20
-
21
- import { Angle } from "./Angle";
22
- import { Ellipsoid } from "./Ellipsoid";
23
- import { GeodeticCurve } from "./GeodeticCurve";
24
- import { GeodeticMeasurement } from "./GeodeticMeasurement";
25
- import { GlobalCoordinates } from "./GlobalCoordinates"
26
- import { GlobalPosition } from "./GlobalPosition"
27
-
28
- export class GeodeticCalculator {
29
- private static readonly TwoPi = Math.PI * 2;
30
-
31
- public calculateGeodeticMeasurement(refEllipsoid: Ellipsoid, start: GlobalPosition, end: GlobalPosition) {
32
- var elev1 = start.getElevation();
33
- var elev2 = end.getElevation();
34
- var elev12 = (elev1 + elev2) / 2.0;
35
- var phi1 = Angle.toRadians(start.getLatitude());
36
- var phi2 = Angle.toRadians(end.getLatitude());
37
- var phi12 = (phi1 + phi2) / 2.0;
38
- var refA = refEllipsoid.getSemiMajorAxis();
39
- var f = refEllipsoid.getFlattening();
40
- var a = refA + elev12 * (1.0 + f * Math.sin(phi12));
41
- var ellipsoid = Ellipsoid.fromAAndF(a, f);
42
- var start1 = new GlobalCoordinates(start.getLatitude(), start.getLongitude());
43
- var end1 = new GlobalCoordinates(end.getLatitude(), end.getLongitude());
44
- var averageCurve = this.calculateGeodeticCurve(ellipsoid, start1, end1);
45
- return new GeodeticMeasurement(averageCurve, elev2 - elev1);
46
- }
47
-
48
- public calculateEndingGlobalCoordinates(ellipsoid: Ellipsoid, start: GlobalCoordinates, startBearing: number, distance: number, endBearing: number[] | null = null) {
49
- var a = ellipsoid.getSemiMajorAxis();
50
- var b = ellipsoid.getSemiMinorAxis();
51
- var aSquared = a * a;
52
- var bSquared = b * b;
53
- var f = ellipsoid.getFlattening();
54
- var phi1 = Angle.toRadians(start.getLatitude());
55
- var alpha1 = Angle.toRadians(startBearing);
56
- var cosAlpha1 = Math.cos(alpha1);
57
- var sinAlpha1 = Math.sin(alpha1);
58
- var s = distance;
59
- var tanU1 = (1.0 - f) * Math.tan(phi1);
60
- var cosU1 = 1.0 / Math.sqrt(1.0 + tanU1 * tanU1);
61
- var sinU1 = tanU1 * cosU1;
62
- var sigma1 = Math.atan2(tanU1, cosAlpha1);
63
- var sinAlpha = cosU1 * sinAlpha1;
64
- var sin2Alpha = sinAlpha * sinAlpha;
65
- var cos2Alpha = 1 - sin2Alpha;
66
- var uSquared = cos2Alpha * (aSquared - bSquared) / bSquared;
67
- var A = 1 + (uSquared / 16384) * (4096 + uSquared * (-768 + uSquared * (320 - 175 * uSquared)));
68
- var B = (uSquared / 1024) * (256 + uSquared * (-128 + uSquared * (74 - 47 * uSquared)));
69
- var deltaSigma;
70
- var sOverbA = s / (b * A);
71
- var sigma = sOverbA;
72
- var sinSigma;
73
- var prevSigma = sOverbA;
74
- var sigmaM2;
75
- var cosSigmaM2;
76
- var cos2SigmaM2;
77
- for (; ;) {
78
- sigmaM2 = 2.0 * sigma1 + sigma;
79
- cosSigmaM2 = Math.cos(sigmaM2);
80
- cos2SigmaM2 = cosSigmaM2 * cosSigmaM2;
81
- sinSigma = Math.sin(sigma);
82
- var cosSignma = Math.cos(sigma);
83
- deltaSigma = B * sinSigma * (cosSigmaM2 + (B / 4.0) * (cosSignma * (-1 + 2 * cos2SigmaM2) - (B / 6.0) * cosSigmaM2 * (-3 + 4 * sinSigma * sinSigma) * (-3 + 4 * cos2SigmaM2)));
84
- sigma = sOverbA + deltaSigma;
85
- if (Number.isNaN(sigma) || Number.isNaN(prevSigma)) {
86
- throw new Error("Point values may be the same; approximation convereged to NaN");
87
- }
88
- if (Math.abs(sigma - prevSigma) < 0.0000000000001)
89
- break;
90
- prevSigma = sigma;
91
- }
92
- sigmaM2 = 2.0 * sigma1 + sigma;
93
- cosSigmaM2 = Math.cos(sigmaM2);
94
- cos2SigmaM2 = cosSigmaM2 * cosSigmaM2;
95
- var cosSigma = Math.cos(sigma);
96
- sinSigma = Math.sin(sigma);
97
- var phi2 = Math.atan2(sinU1 * cosSigma + cosU1 * sinSigma * cosAlpha1, (1.0 - f) * Math.sqrt(sin2Alpha + Math.pow(sinU1 * sinSigma - cosU1 * cosSigma * cosAlpha1, 2.0)));
98
- var lambda = Math.atan2(sinSigma * sinAlpha1, (cosU1 * cosSigma - sinU1 * sinSigma * cosAlpha1));
99
- var C = (f / 16) * cos2Alpha * (4 + f * (4 - 3 * cos2Alpha));
100
- var L = lambda - (1 - C) * f * sinAlpha * (sigma + C * sinSigma * (cosSigmaM2 + C * cosSigma * (-1 + 2 * cos2SigmaM2)));
101
- var alpha2 = Math.atan2(sinAlpha, -sinU1 * sinSigma + cosU1 * cosSigma * cosAlpha1);
102
- var latitude = Angle.toDegrees(phi2);
103
- var longitude = start.getLongitude() + Angle.toDegrees(L);
104
- if ((endBearing != null) && (endBearing.length > 0)) {
105
- endBearing[0] = Angle.toDegrees(alpha2);
106
- }
107
- return new GlobalCoordinates(latitude, longitude);
108
- }
109
-
110
- public calculateGeodeticCurve(ellipsoid: Ellipsoid, start: GlobalCoordinates, end: GlobalCoordinates): GeodeticCurve {
111
- var a = ellipsoid.getSemiMajorAxis();
112
- var b = ellipsoid.getSemiMinorAxis();
113
- var f = ellipsoid.getFlattening();
114
- var phi1 = Angle.toRadians(start.getLatitude());
115
- var lambda1 = Angle.toRadians(start.getLongitude());
116
- var phi2 = Angle.toRadians(end.getLatitude());
117
- var lambda2 = Angle.toRadians(end.getLongitude());
118
- var a2 = a * a;
119
- var b2 = b * b;
120
- var a2b2b2 = (a2 - b2) / b2;
121
- var omega = lambda2 - lambda1;
122
- var tanphi1 = Math.tan(phi1);
123
- var tanU1 = (1.0 - f) * tanphi1;
124
- var U1 = Math.atan(tanU1);
125
- var sinU1 = Math.sin(U1);
126
- var cosU1 = Math.cos(U1);
127
- var tanphi2 = Math.tan(phi2);
128
- var tanU2 = (1.0 - f) * tanphi2;
129
- var U2 = Math.atan(tanU2);
130
- var sinU2 = Math.sin(U2);
131
- var cosU2 = Math.cos(U2);
132
- var sinU1sinU2 = sinU1 * sinU2;
133
- var cosU1sinU2 = cosU1 * sinU2;
134
- var sinU1cosU2 = sinU1 * cosU2;
135
- var cosU1cosU2 = cosU1 * cosU2;
136
- var lambda = omega;
137
- var A = 0.0;
138
- var B = 0.0;
139
- var sigma = 0.0;
140
- var deltasigma = 0.0;
141
- var lambda0;
142
- var converged = false;
143
- for (var i = 0; i < 20; i++) {
144
- lambda0 = lambda;
145
- var sinlambda = Math.sin(lambda);
146
- var coslambda = Math.cos(lambda);
147
- var sin2sigma = (cosU2 * sinlambda * cosU2 * sinlambda) + (cosU1sinU2 - sinU1cosU2 * coslambda) * (cosU1sinU2 - sinU1cosU2 * coslambda);
148
- var sinsigma = Math.sqrt(sin2sigma);
149
- var cossigma = sinU1sinU2 + (cosU1cosU2 * coslambda);
150
- sigma = Math.atan2(sinsigma, cossigma);
151
- var sinalpha = (sin2sigma === 0) ? 0.0 : cosU1cosU2 * sinlambda / sinsigma;
152
- var alpha = Math.asin(sinalpha);
153
- var cosalpha = Math.cos(alpha);
154
- var cos2alpha = cosalpha * cosalpha;
155
- var cos2sigmam = cos2alpha === 0.0 ? 0.0 : cossigma - 2 * sinU1sinU2 / cos2alpha;
156
- var u2 = cos2alpha * a2b2b2;
157
- var cos2sigmam2 = cos2sigmam * cos2sigmam;
158
- A = 1.0 + u2 / 16384 * (4096 + u2 * (-768 + u2 * (320 - 175 * u2)));
159
- B = u2 / 1024 * (256 + u2 * (-128 + u2 * (74 - 47 * u2)));
160
- deltasigma = B * sinsigma * (cos2sigmam + B / 4 * (cossigma * (-1 + 2 * cos2sigmam2) - B / 6 * cos2sigmam * (-3 + 4 * sin2sigma) * (-3 + 4 * cos2sigmam2)));
161
- var C = f / 16 * cos2alpha * (4 + f * (4 - 3 * cos2alpha));
162
- lambda = omega + (1 - C) * f * sinalpha * (sigma + C * sinsigma * (cos2sigmam + C * cossigma * (-1 + 2 * cos2sigmam2)));
163
- var change = Math.abs((lambda - lambda0) / lambda);
164
- if ((i > 1) && (change < 0.0000000000001)) {
165
- converged = true;
166
- break;
167
- }
168
- }
169
- var s = b * A * (sigma - deltasigma);
170
- var alpha1;
171
- var alpha2;
172
- if (!converged) {
173
- if (phi1 > phi2) {
174
- alpha1 = 180.0;
175
- alpha2 = 0.0;
176
- } else if (phi1 < phi2) {
177
- alpha1 = 0.0;
178
- alpha2 = 180.0;
179
- } else {
180
- alpha1 = NaN;
181
- alpha2 = NaN;
182
- }
183
- } else {
184
- var radians;
185
- radians = Math.atan2(cosU2 * Math.sin(lambda), (cosU1sinU2 - sinU1cosU2 * Math.cos(lambda)));
186
- if (radians < 0.0)
187
- radians += GeodeticCalculator.TwoPi;
188
- alpha1 = Angle.toDegrees(radians);
189
- radians = Math.atan2(cosU1 * Math.sin(lambda), (-sinU1cosU2 + cosU1sinU2 * Math.cos(lambda))) + Math.PI;
190
- if (radians < 0.0)
191
- radians += GeodeticCalculator.TwoPi;
192
- alpha2 = Angle.toDegrees(radians);
193
- }
194
- if (alpha1 >= 360.0)
195
- alpha1 -= 360.0;
196
- if (alpha2 >= 360.0)
197
- alpha2 -= 360.0;
198
- return new GeodeticCurve(s, alpha1, alpha2);
199
- }
200
- }
@@ -1,55 +0,0 @@
1
- /*
2
- * Geodesy by Mike Gavaghan
3
- *
4
- * http://www.gavaghan.org/blog/free-source-code/geodesy-library-vincentys-formula/
5
- *
6
- * Copyright 2007 Mike Gavaghan - mike@gavaghan.org
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- */
20
-
21
- export class GeodeticCurve {
22
- private readonly mEllipsoidalDistance: number = 0;
23
- private readonly mAzimuth: number = 0;
24
- private readonly mReverseAzimuth: number = 0;
25
-
26
- constructor(ellipsoidalDistance: number, azimuth: number, reverseAzimuth: number) {
27
- this.mEllipsoidalDistance = ellipsoidalDistance;
28
- this.mAzimuth = azimuth;
29
- this.mReverseAzimuth = reverseAzimuth;
30
- }
31
-
32
- public getEllipsoidalDistance(): number {
33
- return this.mEllipsoidalDistance;
34
- };
35
-
36
- public getAzimuth(): number {
37
- return this.mAzimuth;
38
- };
39
-
40
- public getReverseAzimuth(): number {
41
- return this.mReverseAzimuth;
42
- };
43
-
44
- public toString(): string {
45
- var buffer = "";
46
- buffer += "s=";
47
- buffer += this.mEllipsoidalDistance;
48
- buffer += ";a12=";
49
- buffer += this.mAzimuth;
50
- buffer += ";a21=";
51
- buffer += this.mReverseAzimuth;
52
- buffer += ";";
53
- return buffer;
54
- };
55
- }
@@ -1,68 +0,0 @@
1
- /*
2
- * Geodesy by Mike Gavaghan
3
- *
4
- * http://www.gavaghan.org/blog/free-source-code/geodesy-library-vincentys-formula/
5
- *
6
- * Copyright 2007 Mike Gavaghan - mike@gavaghan.org
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- */
20
-
21
- import { GeodeticCurve } from "./GeodeticCurve";
22
-
23
- export class GeodeticMeasurement extends GeodeticCurve {
24
- private readonly mElevationChange: number = 0;
25
- private readonly mP2P: number = 0;
26
-
27
- constructor(ellipsoidalDistance: number, azimuth: number, reverseAzimuth: number, elevationChange: number);
28
- constructor(averageCurve: GeodeticCurve, elevationChange: number);
29
- public constructor(...args: unknown[]) {
30
- switch (args.length) {
31
- case 2: {
32
- const [averageCurve, elevationChange] = args as [GeodeticCurve, number];
33
- super(averageCurve.getEllipsoidalDistance(), averageCurve.getAzimuth(), averageCurve.getReverseAzimuth())
34
- this.mElevationChange = elevationChange;
35
- break;
36
- }
37
-
38
- case 4: {
39
- const [ellipsoidalDistance, azimuth, reverseAzimuth, elevationChange] = args as [number, number, number, number];
40
- super(ellipsoidalDistance, azimuth, reverseAzimuth)
41
- this.mElevationChange = elevationChange;
42
- this.mP2P = Math.sqrt(ellipsoidalDistance * ellipsoidalDistance + this.mElevationChange * this.mElevationChange);
43
- break;
44
- }
45
-
46
- default: {
47
- throw Error(`Invalid number of arguments`);
48
- }
49
- }
50
- }
51
-
52
- public getElevationChange(): number {
53
- return this.mElevationChange;
54
- };
55
-
56
- public getPointToPointDistance(): number {
57
- return this.mP2P;
58
- };
59
-
60
- public override toString(): string {
61
- var buffer = super.toString();
62
- buffer += ("elev12=");
63
- buffer += (this.mElevationChange);
64
- buffer += (";p2p=");
65
- buffer += (this.mP2P);
66
- return buffer;
67
- };
68
- };
@@ -1,103 +0,0 @@
1
- /*
2
- * Geodesy by Mike Gavaghan
3
- *
4
- * http://www.gavaghan.org/blog/free-source-code/geodesy-library-vincentys-formula/
5
- *
6
- * Copyright 2007 Mike Gavaghan - mike@gavaghan.org
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- */
20
-
21
- export class GlobalCoordinates {
22
- private mLatitude: number = 0;
23
- private mLongitude: number = 0;
24
-
25
- constructor(latitude: number, longitude: number) {
26
- this.mLatitude = latitude;
27
- this.mLongitude = longitude;
28
- this.canonicalize();
29
- }
30
-
31
- private canonicalize(): void {
32
- this.mLatitude = (this.mLatitude + 180) % 360;
33
- if (this.mLatitude < 0)
34
- this.mLatitude += 360;
35
- this.mLatitude -= 180;
36
- if (this.mLatitude > 90) {
37
- this.mLatitude = 180 - this.mLatitude;
38
- this.mLongitude += 180;
39
- } else if (this.mLatitude < -90) {
40
- this.mLatitude = -180 - this.mLatitude;
41
- this.mLongitude += 180;
42
- }
43
- this.mLongitude = ((this.mLongitude + 180) % 360);
44
- if (this.mLongitude <= 0)
45
- this.mLongitude += 360;
46
- this.mLongitude -= 180;
47
- }
48
-
49
- public getLatitude(): number {
50
- return this.mLatitude;
51
- }
52
-
53
- public setLatitude(latitude: number): void {
54
- this.mLatitude = latitude;
55
- this.canonicalize();
56
- }
57
-
58
- public getLongitude(): number {
59
- return this.mLongitude;
60
- }
61
-
62
- public setLongitude(longitude): void {
63
- this.mLongitude = longitude;
64
- this.canonicalize();
65
- }
66
-
67
- public compareTo(other: GlobalCoordinates): number {
68
- var retval;
69
- if (this.mLongitude < other.mLongitude)
70
- retval = -1;
71
- else if (this.mLongitude > other.mLongitude)
72
- retval = 1;
73
- else if (this.mLatitude < other.mLatitude)
74
- retval = -1;
75
- else if (this.mLatitude > other.mLatitude)
76
- retval = 1;
77
- else
78
- retval = 0;
79
- return retval;
80
- }
81
-
82
- public hashCode(): number {
83
- return (Math.round((this.mLongitude * this.mLatitude * 1000000 + 1021))) * 1000033;
84
- }
85
-
86
- public equals(obj: any): boolean {
87
- if (!(obj instanceof GlobalCoordinates))
88
- return false;
89
- var other: GlobalCoordinates = obj;
90
- return (this.mLongitude === other.mLongitude) && (this.mLatitude === other.mLatitude);
91
- }
92
-
93
- public toString(): string {
94
- var buffer = "";
95
- buffer += (Math.abs(this.mLatitude));
96
- buffer += (((this.mLatitude >= 0) ? 'N' : 'S')).charCodeAt(0);
97
- buffer += ((';')).charCodeAt(0);
98
- buffer += (Math.abs(this.mLongitude));
99
- buffer += (((this.mLongitude >= 0) ? 'E' : 'W')).charCodeAt(0);
100
- buffer += ((';')).charCodeAt(0);
101
- return buffer;
102
- }
103
- }
@@ -1,90 +0,0 @@
1
- /*
2
- * Geodesy by Mike Gavaghan
3
- *
4
- * http://www.gavaghan.org/blog/free-source-code/geodesy-library-vincentys-formula/
5
- *
6
- * Copyright 2007 Mike Gavaghan - mike@gavaghan.org
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- */
20
-
21
- import { GlobalCoordinates } from "./GlobalCoordinates";
22
-
23
- export class GlobalPosition extends GlobalCoordinates {
24
- private mElevation: number = 0;
25
-
26
- constructor(latitude: number, longitude: number, elevation: number);
27
- constructor(coords: GlobalCoordinates, elevation: number);
28
- public constructor(...args: unknown[]) {
29
- switch (args.length) {
30
- case 3: {
31
- const [latitude, longitude, elevation] = args as [number, number, number];
32
- super(latitude, longitude)
33
- this.mElevation = elevation;
34
- break;
35
- }
36
- case 2: {
37
- const [coords, elevation] = args as [GlobalCoordinates, number];
38
- super(coords.getLatitude(), coords.getLongitude())
39
- this.mElevation = elevation;
40
- break;
41
- }
42
- default: {
43
- throw Error(`Invalid number of arguments`);
44
- }
45
-
46
- }
47
- }
48
-
49
- public getElevation(): number {
50
- return this.mElevation;
51
- }
52
-
53
- public setElevation(elevation: number): void {
54
- this.mElevation = elevation;
55
- }
56
-
57
- public override compareTo(other: GlobalPosition) {
58
- let retval: number = super.compareTo(other);
59
-
60
- if (retval == 0) {
61
- if (this.mElevation < other.mElevation)
62
- retval = -1;
63
- else if (this.mElevation > other.mElevation)
64
- retval = +1;
65
- }
66
- return retval;
67
- }
68
-
69
- public override hashCode(): number {
70
- var hash = super.hashCode();
71
- if (this.mElevation !== 0)
72
- hash *= Math.round(this.mElevation);
73
- return hash;
74
- }
75
-
76
- public override equals(obj: any): boolean {
77
- if (!(obj instanceof GlobalPosition))
78
- return false;
79
- var other: GlobalPosition = obj;
80
- return (this.mElevation === other.mElevation) && super.equals(other);
81
- }
82
-
83
- public override toString(): string {
84
- var buffer = super.toString();
85
- buffer += ("elevation=");
86
- buffer += (this.mElevation);
87
- buffer += ("m");
88
- return buffer;
89
- }
90
- }