You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add constructor overloads that accept IEllipsoid as parameter for AlbersEqualArea and LambertConformalConic.
* Modify overloads of Forward and Reverse in AlbersEqualArea, AzimuthalEquidistant, CassiniSoldner and LambertConformalConic to return coordinates as tuples.
* Add overloads of Direct and Inverse in Geodesic/GeodesicLine, GeodesicExact/GeodesicLineExact and Rhumb/RhumbLineExact, that return the computation results as a single object.
* Modify methods using out parameters defined in NormalGravity, GravityModel, GravityCircle, MagneticModel and MagnegticCircle to return results as tuples.
* Enable strong name signing.
* Fix stack overflow bug for Forward and Reverse in TransverseMercatorExact.
* Add definitions of popular reference ellipsoids.
* Update documentation
Copy file name to clipboardExpand all lines: GeographicLib/Geocentric.cs
+33-5Lines changed: 33 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -135,12 +135,12 @@ public Geocentric(IEllipsoid ellipsoid) : this(ellipsoid.EquatorialRadius, ellip
135
135
/// <param name="X"><i>x</i> component of geocentric coordinate (meters).</param>
136
136
/// <param name="Y"><i>y</i> component of geocentric coordinate (meters).</param>
137
137
/// <param name="Z"><i>z</i> component of geocentric coordinate (meters).</param>
138
-
/// <param name="M"> the length of the vector is 9, fill with the rotation matrix in row-major order.</param>
138
+
/// <param name="M">if the length of the vector is 9, fill with the rotation matrix in row-major order.</param>
139
139
/// <returns>
140
140
/// <list type="bullet">
141
-
/// <item><i>X</i>, <i>x</i> component of geocentric coordinate (meters).</item>
142
-
/// <item><i>Y</i>, <i>y</i> component of geocentric coordinate (meters).</item>
143
-
/// <item><i>Z</i>, <i>z</i> component of geocentric coordinate (meters).</item>
141
+
/// <item><i>lat</i>, latitude of point (degrees).</item>
142
+
/// <item><i>lon</i>, longitude of point (degrees).</item>
143
+
/// <item><i>h</i>, height of point above the ellipsoid (meters).</item>
144
144
/// </list>
145
145
/// </returns>
146
146
/// <remarks>
@@ -164,7 +164,7 @@ public Geocentric(IEllipsoid ellipsoid) : this(ellipsoid.EquatorialRadius, ellip
164
164
/// If there are still multiple solutions with different latitudes (applies only if <i>Z</i> = 0),
165
165
/// then the solution with <i>lat</i> > 0 is returned.
166
166
/// If there are still multiple solutions with different longitudes (applies only if <i>X</i> = <i>Y</i> = 0)
167
-
/// then <i>lon</i> = <c>0</c> is returned. The value of h returned satisfies <i>h</i> ≥ − <i>a</i> (1 − <i>e</i>^2) / sqrt(1 − <i>e</i>^2 sin^2<i>lat</i>).
167
+
/// then <i>lon</i> = <c>0</c> is returned. The value of <i>h</i> returned satisfies <i>h</i> ≥ − <i>a</i> (1 − <i>e</i>^2) / sqrt(1 − <i>e</i>^2 sin^2<i>lat</i>).
168
168
/// The value of lon returned is in the range [−180°, 180°].
169
169
/// </para>
170
170
/// </remarks>
@@ -190,6 +190,20 @@ internal static void Rotate(ReadOnlySpan<double> M,
190
190
Z=M[6]*x+M[7]*y+M[8]*z;
191
191
}
192
192
193
+
/// <summary>
194
+
/// Perform [X,Y,Z]^t = M.[x,y,z]^t (typically local cartesian to geocentric)
0 commit comments