Xamarin.Forms 地圖地理編碼
Xamarin.Forms.Maps
命名空間提供類別Geocoder
,其會在字串位址與儲存在物件中的Position
緯度和經度座標之間轉換。 如需結構的詳細資訊 Position
,請參閱 地圖位置和距離。
注意
中提供 Xamarin.Essentials替代地理編碼 API。 API 會在 Xamarin.EssentialsGeocoding
地理編碼位址時提供結構化地址數據,而不是此 API 所傳回的字串。 如需詳細資訊,請參閱 Xamarin.Essentials:地理編碼。
地理編碼地址
街地道址可以藉由建立 Geocoder
實例並在 實例上Geocoder
呼叫 GetPositionsForAddressAsync
方法,以地理編碼為緯度和經度座標:
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}";
方法 GetPositionsForAddressAsync
會採用 string
代表位址的自變數,並以異步方式傳回可以代表位址的物件 Position
集合。
反向地理編碼位址
藉由建立 Geocoder
實例並在 實例上Geocoder
呼叫 GetAddressesForPositionAsync
方法,即可將緯度和經度座標反向地理編碼為街道位址:
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();
GetAddressesForPositionAsync
方法會採用Position
由緯度和經度座標組成的自變數,並以異步方式傳回代表位置附近位址的字串集合。