/// <summary> /// Create a RT90 position by converting a WGS84 position /// </summary> /// <param name="position">WGS84 position to convert</param> /// <param name="rt90projection">Projection to convert to</param> public RT90Position(WGS84Position position, RT90Projection rt90projection) : base(Grid.RT90) { GaussKreuger gkProjection = new GaussKreuger(); gkProjection.swedish_params(GetProjectionString(rt90projection)); var lat_lon = gkProjection.geodetic_to_grid(position.Latitude, position.Longitude); Latitude = lat_lon[0]; Longitude = lat_lon[1]; Projection = rt90projection; }
private string GetProjectionString(RT90Projection projection) { string retVal = string.Empty; switch (projection) { case RT90Projection.rt90_7_5_gon_v: retVal = "rt90_7.5_gon_v"; break; case RT90Projection.rt90_5_0_gon_v: retVal = "rt90_5.0_gon_v"; break; case RT90Projection.rt90_2_5_gon_v: retVal = "rt90_2.5_gon_v"; break; case RT90Projection.rt90_0_0_gon_v: retVal = "rt90_0.0_gon_v"; break; case RT90Projection.rt90_2_5_gon_o: retVal = "rt90_2.5_gon_o"; break; case RT90Projection.rt90_5_0_gon_o: retVal = "rt90_5.0_gon_o"; break; default: retVal = "rt90_2.5_gon_v"; break; } return retVal; }
/// <summary> /// Create a new position /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="projection"></param> public RT90Position(double x, double y, RT90Projection projection) : base(x, y, Grid.RT90) { Projection = projection; }
/// <summary> /// Create a new position /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="projection"></param> public RT90Position(double x, double y, RT90Projection projection) : base(x, y, Grid.RT90) { this.Projection = projection; }