/// <summary> /// Creates a new <see cref="Distance"/> instance with the same value as current instance, converted into the specified <see cref="unit"/> unit. /// </summary> /// <param name="unit">The <see cref="GeoDistanceUnit"/> to convert the distance value to.</param> /// <returns></returns> public Distance Convert(GeoDistanceUnit unit) { Distance result; if (unit == this.UnitOfLength) { result = this; } else { result = new Distance(this.Value * this.UnitOfLength.ConversionFactor / unit.ConversionFactor, unit); } return(result); }
static GeoDistanceUnit() { unitConversionMapFromMeters.Add(Units.Millimeter, 0.001); unitConversionMapFromMeters.Add(Units.Centimeter, 0.01); unitConversionMapFromMeters.Add(Units.Decimeter, 0.1); unitConversionMapFromMeters.Add(Units.Foot, 0.3048); unitConversionMapFromMeters.Add(Units.Yard, 0.9144); unitConversionMapFromMeters.Add(Units.Meter, 1); unitConversionMapFromMeters.Add(Units.Kilometer, 1000); unitConversionMapFromMeters.Add(Units.Mile, 1609.344); unitConversionMapFromMeters.Add(Units.NauticalMile, 1852); Meter = new GeoDistanceUnit(Units.Meter, unitConversionMapFromMeters[Units.Meter]); Foot = new GeoDistanceUnit(Units.Foot, unitConversionMapFromMeters[Units.Foot]); Kilometer = new GeoDistanceUnit(Units.Kilometer, unitConversionMapFromMeters[Units.Kilometer]); Mile = new GeoDistanceUnit(Units.Mile, unitConversionMapFromMeters[Units.Mile]); }
/// <summary> /// Creates a new instance of <see cref="Distance"/> type. /// </summary> /// <param name="value">The value in the units specified through the <see cref="unit"/> parameter.</param> /// <param name="unit">The unit the <see cref="value"/> is specified in.</param> public Distance(double value, GeoDistanceUnit unit) { this.value = value; this.unitOfLength = unit; }