При использовании Xamarin.Forms.Maps с Xamarin.Essentials я получаю следующую ошибку:
Ошибка CS0104 «Карта» - это неоднозначная ссылка между «Xamarin.Essentials.Map» и «Xamarin». Forms.Maps.Map '
Я хочу иметь возможность использовать карту и просматривать информацию о местоположении, когда пользователь щелкает их местоположение.
Моим решением было создать класс, который извлекает информацию о местоположении. Страница, на которой есть карта, имеет этот код.
public static double LatValue { set; get; } //Pass this to GeoLoc
public static double LongValue { set; get; } //Pass this to GeoLoc
public Page2()
{
InitializeComponent();
var map = new Map(
MapSpan.FromCenterAndRadius(new Position(22.4, -90.5), Distance.FromMiles(0.3)))
{
IsShowingUser = true,
};
map.MapClicked += Map_MapClicked;
var stack = new StackLayout { Spacing = 0 };
stack.Children.Add(map);
Content = stack;
}
private void Map_MapClicked(object sender, MapClickedEventArgs e)
{
LatValue = e.Position.Latitude;
LongValue = e.Position.Longitude;
Console.WriteLine($"MapClick: {e.Position.Latitude}, {e.Position.Longitude}");
}
Геолокация имеет этот класс:
public async void GetGeosLoc()
{
try
{
var placemarks = await Geocoding.GetPlacemarksAsync(Page2.LatValue, Page2.LongValue);
var placemark = placemarks?.FirstOrDefault();
if (placemark != null)
{
var geocodeAddress =
$"AdminArea: {placemark.AdminArea}\n" +
$"CountryCode: {placemark.CountryCode}\n" +
$"CountryName: {placemark.CountryName}\n" +
$"FeatureName: {placemark.FeatureName}\n" +
$"Locality: {placemark.Locality}\n" +
$"PostalCode: {placemark.PostalCode}\n" +
$"SubAdminArea: {placemark.SubAdminArea}\n" +
$"SubLocality: {placemark.SubLocality}\n" +
$"SubThoroughfare: {placemark.SubThoroughfare}\n" +
$"Thoroughfare: {placemark.Thoroughfare}\n";
Console.WriteLine(geocodeAddress);
}
}
catch (FeatureNotSupportedException fnsEx)
{
// Feature not supported on device
}
catch (Exception ex)
{
// Handle exception that may have occurred in geocoding
}
}
Есть ли лучший способ использования карт форм с основами?