XAML-Map-Control/MapControl/Shared/MapProjectionFactory.cs

52 lines
1.6 KiB
C#
Raw Normal View History

2022-01-19 16:43:00 +01:00
// XAML Map Control - https://github.com/ClemensFischer/XAML-Map-Control
// © 2022 Clemens Fischer
// Licensed under the Microsoft Public License (Ms-PL)
namespace MapControl
{
public class MapProjectionFactory
{
2022-01-21 00:07:23 +01:00
public virtual MapProjection CreateProjection(string crsId)
2022-01-19 16:43:00 +01:00
{
MapProjection projection = null;
2022-01-21 00:07:23 +01:00
switch (crsId)
2022-01-19 16:43:00 +01:00
{
case WorldMercatorProjection.DefaultCrsId:
projection = new WorldMercatorProjection();
break;
case WebMercatorProjection.DefaultCrsId:
projection = new WebMercatorProjection();
break;
case EquirectangularProjection.DefaultCrsId:
projection = new EquirectangularProjection();
break;
case OrthographicProjection.DefaultCrsId:
projection = new OrthographicProjection();
break;
case AutoEquirectangularProjection.DefaultCrsId:
projection = new AutoEquirectangularProjection();
break;
case GnomonicProjection.DefaultCrsId:
projection = new GnomonicProjection();
break;
case StereographicProjection.DefaultCrsId:
projection = new StereographicProjection();
break;
case "EPSG:97003": // proprietary CRS ID
2022-01-21 00:07:23 +01:00
projection = new AzimuthalEquidistantProjection { CrsId = crsId };
2022-01-19 16:43:00 +01:00
break;
}
return projection;
}
}
}