Xamarin.Forms 地图位置和距离

Xamarin.Forms.Maps 命名空间包含在定位地图及其图钉时通常使用的 Position 结构,以及在定位地图时可以选择使用的 Distance 结构。

位置

Position 结构封装存储为纬度和经度值的位置。 此结构定义两个只读属性:

  • Latitude,类型为 double,以十进制度表示的位置的纬度。
  • Longitude,类型为 double,以十进制度表示的位置的经度。

Position 对象是使用 Position 构造函数创建的,该构造函数需要使用指定为 double 值的纬度和经度参数:

Position position = new Position(36.9628066, -122.0194722);

创建 Position 对象时,纬度值将固定在 -90.0 和 90.0 之间,经度值将固定在 -180.0 和 180.0 之间。

注意

GeographyUtils 类包含将 double 值从度数转换为弧度的 ToRadians 扩展方法,以及将 double 值从弧度转换为度数的 ToDegrees 扩展方法。

距离

Distance 结构封装存储为 double 值的距离,该值表示以米为单位的距离。 此结构定义三个只读属性:

  • Kilometers,类型为 double,表示 Distance 跨越的距离(以千米为单位)。
  • Meters,类型为 double,表示 Distance 跨越的距离(以米为单位)。
  • Miles,类型为 double,表示 Distance 跨越的距离(以英里为单位)。

可以使用 Distance 构造函数创建 Distance 对象,这需要指定为 double 的 meters 参数:

Distance distance = new Distance(1450.5);

或者,可以使用 FromKilometersFromMetersFromMilesBetweenPositions 工厂方法创建 Distance 对象:

Distance distance1 = Distance.FromKilometers(1.45); // argument represents the number of kilometers
Distance distance2 = Distance.FromMeters(1450.5);   // argument represents the number of meters
Distance distance3 = Distance.FromMiles(0.969);     // argument represents the number of miles
Distance distance4 = Distance.BetweenPositions(position1, position2);