WARNING: Version 5.x has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Distance unitsedit
Whenever distances need to be specified, e.g. for a geo distance query,
the distance unit can be specified as a double number representing distance in meters, as a new instance of
a Distance
, or as a string of the form number and distance unit e.g. "2.72km
"
NEST uses a Distance
type to strongly type distance units and there are several ways to construct one.
Constructoredit
The most straight forward way to construct a Distance
is through its constructor
var unitComposed = new Distance(25); var unitComposedWithUnits = new Distance(25, Nest.DistanceUnit.Meters);
Distance
serializes to a string composed of a factor and distance unit.
The factor is a double so always has at least one decimal place when serialized
Expect("25.0m") .WhenSerializing(unitComposed) .WhenSerializing(unitComposedWithUnits);
Implicit conversionedit
Alternatively a distance unit string
can be assigned to a Distance
, resulting in an implicit conversion to a new Distance
instance.
If no DistanceUnit
is specified, the default distance unit is meters
Distance distanceString = "25"; Distance distanceStringWithUnits = "25m"; Expect(new Distance(25)) .WhenSerializing(distanceString) .WhenSerializing(distanceStringWithUnits);
Supported unitsedit
A number of distance units are supported, from millimeters to nautical miles
Metricedit
mm
(Millimeters)
Expect("2.0mm").WhenSerializing(new Distance(2, Nest.DistanceUnit.Millimeters));
cm
(Centimeters)
Expect("123.456cm").WhenSerializing(new Distance(123.456, Nest.DistanceUnit.Centimeters));
m
(Meters)
Expect("400.0m").WhenSerializing(new Distance(400, Nest.DistanceUnit.Meters));
km
(Kilometers)
Expect("0.1km").WhenSerializing(new Distance(0.1, Nest.DistanceUnit.Kilometers));
Imperialedit
in
(Inches)
Expect("43.23in").WhenSerializing(new Distance(43.23, Nest.DistanceUnit.Inch));
ft
(Feet)
Expect("3.33ft").WhenSerializing(new Distance(3.33, Nest.DistanceUnit.Feet));
yd
(Yards)
Expect("9.0yd").WhenSerializing(new Distance(9, Nest.DistanceUnit.Yards));
mi
(Miles)
Expect("0.62mi").WhenSerializing(new Distance(0.62, Nest.DistanceUnit.Miles));
nmi
or NM
(Nautical Miles)
Expect("45.5nmi").WhenSerializing(new Distance(45.5, Nest.DistanceUnit.NauticalMiles));