Version: 5.xhtml
英文原文地址:Distance unitsc#
當咱們須要指定距離時(地理位置查詢),可使用一個雙精度的數字來表示,它的默認單位是米(meters)。除此以外,也可使用一個包含數字和單位的字符串(如:"2.72km"
)。api
NEST 使用 Distance
類型來規範距離,並提供了幾種方式來構造這種類型的對象。elasticsearch
最直接的方式是使用構造函數來構造 Distance
對象ide
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
,默認單位是米ui
Distance distanceString = "25"; Distance distanceStringWithUnits = "25m"; Expect(new Distance(25)) .WhenSerializing(distanceString) .WhenSerializing(distanceStringWithUnits);
NEST 支持數個距離單位,從毫米到海里code
mm
(Millimeters) 毫米htm
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 米