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

55 lines
1.7 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-22 20:32:17 +01:00
public virtual MapProjection GetProjection(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-03-05 18:40:57 +01:00
projection = new AzimuthalEquidistantProjection(crsId);
2022-01-19 16:43:00 +01:00
break;
2022-01-22 20:32:17 +01:00
default:
break;
2022-01-19 16:43:00 +01:00
}
return projection;
}
}
}