Xamarin.Forms Geokódování map
Obor Xamarin.Forms.Maps
názvů poskytuje Geocoder
třídu, která převádí mezi řetězcovými adresami a souřadnicemi zeměpisné šířky a délky, které jsou uloženy v Position
objektech. Další informace o struktuře Position
naleznete v tématu Umístění a vzdálenost mapy.
Poznámka:
Alternativní rozhraní API pro geokódování je k dispozici v Xamarin.Essentialssystému . Rozhraní Xamarin.EssentialsGeocoding
API nabízí strukturovaná data adres při geokódování adres na rozdíl od řetězců vrácených tímto rozhraním API. Další informace naleznete v tématu Xamarin.Essentials: Geokódování.
Geografické kódování adresy
Adresu ulice lze geokódovat do souřadnic zeměpisné šířky a délky vytvořením Geocoder
instance a voláním GetPositionsForAddressAsync
metody v Geocoder
instanci:
using Xamarin.Forms.Maps;
// ...
Geocoder geoCoder = new Geocoder();
IEnumerable<Position> approximateLocations = await geoCoder.GetPositionsForAddressAsync("Pacific Ave, San Francisco, California");
Position position = approximateLocations.FirstOrDefault();
string coordinates = $"{position.Latitude}, {position.Longitude}";
Metoda GetPositionsForAddressAsync
přebírá string
argument, který představuje adresu, asynchronně vrátí kolekci Position
objektů, které by mohly představovat adresu.
Zpětné geografické kódování adresy
Souřadnice zeměpisné šířky a délky můžou být zpětně zakódovány na ulici vytvořením Geocoder
instance a voláním GetAddressesForPositionAsync
metody v Geocoder
instanci:
using Xamarin.Forms.Maps;
// ...
Geocoder geoCoder = new Geocoder();
Position position = new Position(37.8044866, -122.4324132);
IEnumerable<string> possibleAddresses = await geoCoder.GetAddressesForPositionAsync(position);
string address = possibleAddresses.FirstOrDefault();
Metoda GetAddressesForPositionAsync
přebírá Position
argument složený ze souřadnic zeměpisné šířky a délky a asynchronně vrátí kolekci řetězců, které představují adresy blízko pozice.