将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
}
}
使用带有基本要素的表单映射是否还有更好的方法?