/// <summary> /// Format the given geo-coordinate /// Possible formats: /// d - Dezimalgrad, zum Beispiel 37.7°, -122.2° /// g - Grad, Minuten, Sekunden, zum Beispiel 37°25'19.07"N, 122°05'06.24"W /// m - Grad, Dezimalminuten, zum Beispiel 32° 18.385' N 122° 36.875' W /// Grad, Dezimalgrad ohne Grad-Zeichen /// </summary> /// <param name="coordinate"></param> /// <param name="format">Format to be used: d, g or m</param> /// <returns></returns> public static string ToString(this GeoCoordinate coordinate, string format = "") { var latitude = new SexagesimalCoordinate(coordinate.Latitude); var longitude = new SexagesimalCoordinate(coordinate.Longitude); return($"{latitude.ToLatString(format)}, {longitude.ToLongString(format)}"); }
public void DecimalGradWithTypeShouldBeParsable() { var source = new SexagesimalCoordinate(37, 25, 19.07); var text = source.DecimalValue.ToString(CultureInfo.InvariantCulture) + "O"; var coordinate = SexagesimalCoordinateParser.Parse(text); Assert.Equal(37, coordinate.Degrees); Assert.Equal(25, coordinate.Minutes); Assert.Equal(19, (int)coordinate.Seconds); Assert.Equal(SexagesimalCoordinate.CoordinateType.Longitude, coordinate.Type); }