微软信仰中心 2018-01-19
Version: 5.x
英文原文地址:Distance units
当我们需要指定距离时(地理位置查询),可以使用一个双精度的数字来表示,它的默认单位是米(meters)。除此之外,也可以使用一个包含数字和单位的字符串(如:"2.72km"
)。
NEST 使用 Distance
类型来规范距离,并提供了几种方式来构造这种类型的对象。
最直接的方式是使用构造函数来构造 Distance
对象
var unitComposed = new Distance(25); var unitComposedWithUnits = new Distance(25, Nest.DistanceUnit.Meters);
Distance
对象会被序列化为一个由因子和距离单位构成的字符串。因子是一个双精度的数字,所以序列化时至少保留一位小数
Expect("25.0m") .WhenSerializing(unitComposed) .WhenSerializing(unitComposedWithUnits);
或者,将一个表示距离的 string
直接赋值给 Distance
变量,内部会执行一次隐式转换,从而构造一个 Distance
实例。如果没有指定 DistanceUnit
,默认单位是米
Distance distanceString = "25"; Distance distanceStringWithUnits = "25m"; Expect(new Distance(25)) .WhenSerializing(distanceString) .WhenSerializing(distanceStringWithUnits);
NEST 支持数个距离单位,从毫米到海里
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));
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));
1 英寸 = 2.54 厘米
1 英尺 = 12 英寸
1 码 = 3 英尺
1 英里 = 1760 码
1 海里 = 1852 米