示例#1
0
 public static Coordinates Create(float latitude, float longitude, CoordinatesFormat format)
 {
     return(new Coordinates()
     {
         Latitude = Latitude.Create(latitude, format),
         Longitude = Longitude.Create(longitude, format)
     });
 }
示例#2
0
 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);
 }
示例#3
0
 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);
 }
示例#4
0
        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()
            });
        }
示例#5
0
        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);
            }
        }