Compartir vía


Posición y distancia del mapa Xamarin.Forms

El espacio de nombres Xamarin.Forms.Maps contiene una estructura Position que se usa normalmente al colocar un mapa y sus anclajes, y una estructura Distance que se puede usar opcionalmente al colocar un mapa.

Posición

La estructura Position encapsula una posición almacenada como valores de latitud y longitud. Esta estructura define dos propiedades de solo lectura:

  • Latitude, de tipo double, que representa la latitud de la posición en grados decimales.
  • Longitude, de tipo double, que representa la longitud de la posición en grados decimales.

Los objetos Position se crean con el constructor Position, que requiere argumentos de latitud y longitud especificados como valores double:

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

Al crear un objeto Position, el valor de latitud se fijará entre -90,0 y 90,0, y el valor de longitud se fijará entre -180,0 y 180,0.

Nota:

La clase GeographyUtils tiene un método de extensión ToRadians que convierte un valor double de grados a radianes y un método de extensión ToDegrees que convierte un valor double de radianes a grados.

Distancia

La estructura Distance encapsula una distancia almacenada como un valor double, que representa la distancia en metros. Esta estructura define tres propiedades de solo lectura:

  • Kilometers, de tipo double, que representa la distancia en kilómetros que abarca Distance.
  • Meters, de tipo double, que representa la distancia en metros que abarca Distance.
  • Miles, de tipo double, que representa la distancia en millas que abarca Distance.

Los objetos Distance se pueden crear con el constructor Distance, que requiere un argumento de metros especificado como double:

Distance distance = new Distance(1450.5);

Como alternativa, los objetos Distance se pueden crear con los métodos de fábrica FromKilometers FromMeters, FromMiles y BetweenPositions:

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);