public static Coordinates Create(float latitude, float longitude, CoordinatesFormat format) { return(new Coordinates() { Latitude = Latitude.Create(latitude, format), Longitude = Longitude.Create(longitude, format) }); }
public string ToString(CoordinatesFormat format) { if (IsSpecified) { if (InputFormat == CoordinatesFormat.Invalid) { return(string.Format("{0}{1}", Latitude.ToString(format), Longitude.ToString(format))); } return(string.Format("{0}, {1}", Latitude.ToString(format), Longitude.ToString(format))); } return(string.Empty); }
public CoordinateBounds Extend(Coordinates c) { if (c.IsValidAndSpecified()) { lastExtensionCoordinatesFormat = c.InputFormat; northLatitude = Math.Max(c.Latitude.TotalDegrees, northLatitude); eastLongitude = Math.Max(c.Longitude.TotalDegrees, eastLongitude); southLatitude = Math.Min(c.Latitude.TotalDegrees, southLatitude); westLongitude = Math.Min(c.Longitude.TotalDegrees, westLongitude); isComputationStale = true; } return(this); }
public static Latitude Create(float degrees, CoordinatesFormat format = CoordinatesFormat.Default) { if (Math.Abs(degrees) > 180f) { throw new ArgumentException("Degrees cannot exceed 180.", nameof(degrees)); } return(new Latitude { InputFormat = format, TotalDegrees = degrees > 90f ? -180f + degrees : degrees < -90f ? 180f + degrees : degrees, RawValue = degrees.ToString() }); }
public string ToString(CoordinatesFormat format) { if (!IsSpecified) { return(string.Empty); } switch (format) { case CoordinatesFormat.DegreesMinutesDecimalSeconds: return(string.Format("{0:00} {1:00} {2:00.0}", AbsoluteWholeDegrees * Sign, AbsoluteWholeMinutes, AbsoluteSeconds)); case CoordinatesFormat.Default: case CoordinatesFormat.DegreesDecimalMinutes: return(string.Format("{0:00} {1:00.000}", AbsoluteWholeDegrees * Sign, AbsoluteMinutes)); case CoordinatesFormat.DecimalDegrees: return(string.Format("{0:00.00000}", AbsoluteTotalDegrees * Sign)); default: return(RawValue); } }