共用方式為


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由緯度和經度座標組成的自變數,並以異步方式傳回代表位置附近位址的字串集合。