使用表单地图和地理位置

将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
        }
    }

使用带有基本要素的表单映射是否还有更好的方法?

tttttt001 回答:使用表单地图和地理位置

首先,请确保您使用了正确的nuget程序包

Xamarin.Forms.MapsXamarin.Essentials

我看到您的错误消息与Xamarin.Forms.Maps.Map无关,而不与Xamarin.Forms.Maps`有关,请打开您的NuGet软件包管理器,检查这些nuget软件包的名称。 enter image description here

我在模拟器中对其进行了测试,我可以同时使用这些nuget包(Xamarin.Forms.MapsXamarin.Essentials)。

这是我正在运行的屏幕截图。

enter image description here

在我的代码中,我使用Xamarin.Essentials获取位置信息,显示警报。

我发布了我的代码。您可以参考它(不要忘记替换com.google.android.maps.v2.API_KEYAndroidManifest.xml的值)

https://github.com/851265601/MyMapdemo

本文链接:https://www.f2er.com/3152112.html

大家都在问