diff --git a/MapControl/Shared/AutoEquirectangularProjection.cs b/MapControl/Shared/AutoEquirectangularProjection.cs
index 1ba7f033..de9dfe92 100644
--- a/MapControl/Shared/AutoEquirectangularProjection.cs
+++ b/MapControl/Shared/AutoEquirectangularProjection.cs
@@ -9,6 +9,11 @@ using System.Windows;
namespace MapControl
{
+ ///
+ /// Auto-Equirectangular Projection - AUTO2:42004.
+ /// Equidistant cylindrical projection with standard parallel and central meridian set by the Center property.
+ /// See "Map Projections - A Working Manual" (https://pubs.usgs.gov/pp/1395/report.pdf), p.90-91.
+ ///
public class AutoEquirectangularProjection : MapProjection
{
public const string DefaultCrsId = "AUTO2:42004";
@@ -16,24 +21,21 @@ namespace MapControl
public AutoEquirectangularProjection()
{
CrsId = DefaultCrsId;
+ IsNormalCylindrical = true;
}
public override Point LocationToMap(Location location)
{
- var xScale = Wgs84MetersPerDegree * Math.Cos(Center.Latitude * Math.PI / 180d);
-
return new Point(
- xScale * (location.Longitude - Center.Longitude),
+ Wgs84MetersPerDegree * (location.Longitude - Center.Longitude) * Math.Cos(Center.Latitude * Math.PI / 180d),
Wgs84MetersPerDegree * location.Latitude);
}
public override Location MapToLocation(Point point)
{
- var xScale = Wgs84MetersPerDegree * Math.Cos(Center.Latitude * Math.PI / 180d);
-
return new Location(
point.Y / Wgs84MetersPerDegree,
- point.X / xScale + Center.Longitude);
+ point.X / (Wgs84MetersPerDegree * Math.Cos(Center.Latitude * Math.PI / 180d)) + Center.Longitude);
}
}
}
diff --git a/MapControl/Shared/AzimuthalEquidistantProjection.cs b/MapControl/Shared/AzimuthalEquidistantProjection.cs
index bd03eefe..5e0953d9 100644
--- a/MapControl/Shared/AzimuthalEquidistantProjection.cs
+++ b/MapControl/Shared/AzimuthalEquidistantProjection.cs
@@ -10,12 +10,11 @@ using System.Windows;
namespace MapControl
{
///
- /// Spherical Azimuthal Equidistant Projection.
+ /// Spherical Azimuthal Equidistant Projection - No standard CRS ID.
+ /// See "Map Projections - A Working Manual" (https://pubs.usgs.gov/pp/1395/report.pdf), p.195-197.
///
public class AzimuthalEquidistantProjection : AzimuthalProjection
{
- // No standard CRS ID
-
public override Point LocationToMap(Location location)
{
if (location.Equals(Center))
diff --git a/MapControl/Shared/EquirectangularProjection.cs b/MapControl/Shared/EquirectangularProjection.cs
index 39469fba..a2bd0be0 100644
--- a/MapControl/Shared/EquirectangularProjection.cs
+++ b/MapControl/Shared/EquirectangularProjection.cs
@@ -13,8 +13,9 @@ using System.Windows;
namespace MapControl
{
///
- /// Equirectangular Projection.
- /// Longitude and Latitude values are transformed linearly to X and Y values in meters.
+ /// Equirectangular Projection - EPSG:4326.
+ /// Equidistant cylindrical projection with zero standard parallel and central meridian.
+ /// See "Map Projections - A Working Manual" (https://pubs.usgs.gov/pp/1395/report.pdf), p.90-91.
///
public class EquirectangularProjection : MapProjection
{
diff --git a/MapControl/Shared/GnomonicProjection.cs b/MapControl/Shared/GnomonicProjection.cs
index feb8ac9e..20b5f963 100644
--- a/MapControl/Shared/GnomonicProjection.cs
+++ b/MapControl/Shared/GnomonicProjection.cs
@@ -10,7 +10,8 @@ using System.Windows;
namespace MapControl
{
///
- /// Spherical Gnomonic Projection.
+ /// Spherical Gnomonic Projection - AUTO2:97001.
+ /// See "Map Projections - A Working Manual" (https://pubs.usgs.gov/pp/1395/report.pdf), p.165-167.
///
public class GnomonicProjection : AzimuthalProjection
{
diff --git a/MapControl/Shared/OrthographicProjection.cs b/MapControl/Shared/OrthographicProjection.cs
index bad81d2f..ca1b46ec 100644
--- a/MapControl/Shared/OrthographicProjection.cs
+++ b/MapControl/Shared/OrthographicProjection.cs
@@ -10,7 +10,8 @@ using System.Windows;
namespace MapControl
{
///
- /// Spherical Orthographic Projection.
+ /// Spherical Orthographic Projection - AUTO2:42003.
+ /// See "Map Projections - A Working Manual" (https://pubs.usgs.gov/pp/1395/report.pdf), p.148-150.
///
public class OrthographicProjection : AzimuthalProjection
{
diff --git a/MapControl/Shared/StereographicProjection.cs b/MapControl/Shared/StereographicProjection.cs
index 8d5683db..32baff7a 100644
--- a/MapControl/Shared/StereographicProjection.cs
+++ b/MapControl/Shared/StereographicProjection.cs
@@ -10,7 +10,8 @@ using System.Windows;
namespace MapControl
{
///
- /// Spherical Stereographic Projection.
+ /// Spherical Stereographic Projection - AUTO2:97002.
+ /// See "Map Projections - A Working Manual" (https://pubs.usgs.gov/pp/1395/report.pdf), p.157-160.
///
public class StereographicProjection : AzimuthalProjection
{
diff --git a/MapControl/Shared/WebMercatorProjection.cs b/MapControl/Shared/WebMercatorProjection.cs
index 5fd7bf4b..234fb7ab 100644
--- a/MapControl/Shared/WebMercatorProjection.cs
+++ b/MapControl/Shared/WebMercatorProjection.cs
@@ -10,7 +10,7 @@ using System.Windows;
namespace MapControl
{
///
- /// Spherical Mercator Projection, EPSG:3857.
+ /// Spherical Mercator Projection - EPSG:3857.
/// See "Map Projections - A Working Manual" (https://pubs.usgs.gov/pp/1395/report.pdf), p.41-44.
///
public class WebMercatorProjection : MapProjection
diff --git a/MapControl/Shared/WorldMercatorProjection.cs b/MapControl/Shared/WorldMercatorProjection.cs
index 6592bb45..abdc71f2 100644
--- a/MapControl/Shared/WorldMercatorProjection.cs
+++ b/MapControl/Shared/WorldMercatorProjection.cs
@@ -10,7 +10,7 @@ using System.Windows;
namespace MapControl
{
///
- /// Elliptical Mercator Projection, EPSG:3395.
+ /// Elliptical Mercator Projection - EPSG:3395.
/// See "Map Projections - A Working Manual" (https://pubs.usgs.gov/pp/1395/report.pdf), p.44-45.
///
public class WorldMercatorProjection : MapProjection
diff --git a/MapProjections/Shared/PolarStereographicProjection.cs b/MapProjections/Shared/PolarStereographicProjection.cs
index c2a6b438..33dead12 100644
--- a/MapProjections/Shared/PolarStereographicProjection.cs
+++ b/MapProjections/Shared/PolarStereographicProjection.cs
@@ -112,6 +112,9 @@ namespace MapControl.Projections
}
}
+ ///
+ /// Elliptical North Polar Stereographic Projection - EPSG:32661.
+ ///
public class UpsNorthProjection : PolarStereographicProjection
{
public const string DefaultCrsId = "EPSG:32661";
@@ -122,6 +125,9 @@ namespace MapControl.Projections
}
}
+ ///
+ /// Elliptical South Polar Stereographic Projection - EPSG:32761.
+ ///
public class UpsSouthProjection : PolarStereographicProjection
{
public const string DefaultCrsId = "EPSG:32761";