public static ProjNet.CoordinateSystems.Transformations.ICoordinateTransformation Transform2Albers(ProjNet.CoordinateSystems.ICoordinateSystem source) { if (source == null) throw new ArgumentException("Source coordinate system is null"); if (!(source is IGeographicCoordinateSystem)) throw new ArgumentException("Source coordinate system must be geographic"); CoordinateSystemFactory cFac = new CoordinateSystemFactory(); List<ProjectionParameter> parameters = new List<ProjectionParameter>(); parameters.Add(new ProjectionParameter("central_meridian", -95)); parameters.Add(new ProjectionParameter("latitude_of_origin", 50)); parameters.Add(new ProjectionParameter("standard_parallel_1", 29.5)); parameters.Add(new ProjectionParameter("standard_parallel_2", 45.5)); parameters.Add(new ProjectionParameter("false_easting", 0)); parameters.Add(new ProjectionParameter("false_northing", 0)); IProjection projection = cFac.CreateProjection("Albers_Conic_Equal_Area", "albers", parameters); IProjectedCoordinateSystem coordsys = cFac.CreateProjectedCoordinateSystem("Albers_Conic_Equal_Area", source as IGeographicCoordinateSystem, projection, ProjNet.CoordinateSystems.LinearUnit.Metre, new AxisInfo("East", AxisOrientationEnum.East), new AxisInfo("North", AxisOrientationEnum. North)); return new CoordinateTransformationFactory().CreateFromCoordinateSystems(source, coordsys); }
public static ICoordinateSystem Convert(ProjNet.CoordinateSystems.ICoordinateSystem system) { if (system==null) return null; var ret=system as ICoordinateSystem; if (ret==null) { ICoordinateSystemProvider provider=ServiceLocator.Current.GetInstance<ICoordinateSystemProvider>(); ret=provider.CreateFromWkt(system.WKT); } return ret; }