GPSの位置を特定し、それをアドレスに変換する簡単なコードが必要です。混合ジオロケーターとforms.maps xamarin.forms
GeolocatorライブラリとForms.Mapsが見つかりました。両方を混合しています。私は実際に座標からアドレスを取得したい場合を除いて、すべてがOKと思われます。ラベルはアドレスを受け取ることはありません。
は、ここでラベルテキストが変更されない場合は、これはジオコーダは、任意のアドレスを見つけることができないとpossibleAddresses
が空であることを意味し、コード
public partial class PublicarCarona : ContentPage
{
Geocoder geoCoder;
public PublicarCarona()
{
InitializeComponent();
geoCoder = new Geocoder();
}
public async void OnReverseGeocodeButtonClicked(object sender, EventArgs e)
{
try
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync(timeoutMilliseconds: 10000);
double? latitude = Convert.ToDouble (position.Latitude);
double? longitude = Convert.ToDouble (position.Longitude);
if (latitude != null && longitude != null)
{
var revposition = new Xamarin.Forms.Maps.Position(latitude.Value, longitude.Value);
var possibleAddresses = await geoCoder.GetAddressesForPositionAsync(revposition);
foreach (var address in possibleAddresses)
lblcoordenadas.Text += address + "\n";
}
else lblcoordenadas.Text += "erro";
}
catch (Exception ex)
{
await DisplayAlert("Notification", "Unable to get GPS Location " + ex, "Ok");
}
}
}
です。それは二重否定であり、すべてが大丈夫であることを意味します。 – Cheesebaron
これは何をテストしていますか? AndroidまたはiOS端末ですか? – SushiHangover
Android .... いいえ、lblcoordenadas.textにはアドレス名と表示が必要でしたが、アドレスはnullです。 –