Partilhar via


Xamarin.Forms Posição e distância do mapa

O Xamarin.Forms.Maps namespace contém um Position struct que normalmente é usado ao posicionar um mapa e seus pinos e um Distance struct que pode ser usado opcionalmente ao posicionar um mapa.

Cargo

O Position struct encapsula uma posição armazenada como valores de latitude e longitude. Esse struct define duas propriedades somente leitura:

  • Latitude, do tipo double, que representa a latitude da posição em graus decimais.
  • Longitude, do tipo double, que representa a longitude da posição em graus decimais.

Position Os objetos são criados com o construtor, que Position requer argumentos de latitude e longitude especificados como double valores:

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

Ao criar um objeto Position, o valor de latitude será fixado entre -90,0 e 90,0, e o valor de longitude será fixado entre -180,0 e 180,0.

Observação

A classe GeographyUtils tem um método de extensão ToRadians que converte um valor double de graus em radianos e um método de extensão ToDegrees que converte um valor double de radianos em graus.

Distância

O struct Distance encapsula uma distância armazenada como um valor double, que representa a distância em metros. Esse struct define três propriedades somente leitura:

  • Kilometers, do tipo double, que representa a distância em quilômetros que é abrangida pelo Distance.
  • Meters, do tipo double, que representa a distância em metros que é abrangida pelo Distance.
  • Miles, do tipo double, que representa a distância em milhas que é abrangida pelo Distance.

Os objetos Distance podem ser criados com o construtor Distance, que requer um argumento de metros especificado como um double:

Distance distance = new Distance(1450.5);

Como alternativa, os objetos Distance podem ser criados com os métodos de fábrica FromKilometers, FromMeters, FromMiles e 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);