将 pin 添加到 Mapsui 时出现异常Xamarin Forms

如何解决将 pin 添加到 Mapsui 时出现异常Xamarin Forms

我正在尝试向我的 Xamarin Forms mapsui 控件添加图钉。

这是我的 Xaml

<mapsui:MapView x:Name="selectMapControl"
        VerticalOptions="FillAndExpand"
        HorizontalOptions="Fill"
        BackgroundColor="Gray" />

这是我的代码

protected override void OnAppearing()
        {
            base.OnAppearing();

            var map = new Map
            {
                CRS = "epsg:3857",Transformation = new MinimalTransformation()
            };

            var tileLayer = OpenStreetMap.CreateTileLayer();

            map.Layers.Add(tileLayer);
            map.Widgets.Add(new mapsui.Widgets.ScaleBar.ScaleBarWidget(map) { TextAlignment = mapsui.Widgets.Alignment.Center,HorizontalAlignment = mapsui.Widgets.HorizontalAlignment.Left,VerticalAlignment = mapsui.Widgets.VerticalAlignment.Bottom });

            selectMapControl.Map = map;

            double lat = 36.9628066;
            double lng = -122.0194722;

            var myPosition = new Position(lat,lng);
            var myPin = new Pin(selectMapControl) //Exception here
            {
               Position = myPosition,Type = PinType.Pin,Label = "Zero point",Address = "Zero point",};
            selectMapControl.Pins.Add(myPin);
}

我收到“未将对象引用设置为对象的实例。”行中的异常 var myPin = new Pin(selectMapControl)...

如果我的 lat 和 lng 都设置为 0 那么它就可以工作 这是异常中的堆栈跟踪:

   at mapsui.UI.Forms.Pin.OnPropertyChanged (System.String propertyName) [0x001df] in <5cc65edf513349cdba641e049bbf0143>:0 

在 Xamarin.Forms.BindableObject.SetValueActual(Xamarin.Forms.BindableProperty 属性、Xamarin.Forms.BindableObject+BindablePropertyContext 上下文、System.Object 值、System.Boolean currentApplying、Xamarin.Forms.Internals.SetValueFlags 属性、System.Boolean无声) [0x00114] 在 D:\a\1\s\Xamarin.Forms.Core\BindableObject.cs:510 在 Xamarin.Forms.BindableObject.SetValueCore(Xamarin.Forms.BindableProperty 属性、System.Object 值、Xamarin.Forms.Internals.SetValueFlags 属性、Xamarin.Forms.BindableObject+SetValuePrivateFlags privateAttributes)[0x00173] 在 D:\a\1\ s\Xamarin.Forms.Core\BindableObject.cs:446 在 Xamarin.Forms.BindableObject.SetValue(Xamarin.Forms.BindableProperty 属性、System.Object 值、System.Boolean fromStyle、System.Boolean checkAccess)[0x0004d] 在 D:\a\1\s\Xamarin.Forms.Core\ BindableObject.cs:374 在 Xamarin.Forms.BindableObject.SetValue(Xamarin.Forms.BindableProperty 属性,System.Object 值)[0x00000] 在 D:\a\1\s\Xamarin.Forms.Core\BindableObject.cs:349 在 mapsui.UI.Forms.Pin.set_Position (mapsui.UI.Forms.Position 值) [0x00000] 在 :0 在 eLunaApp.Views.RestaurantMapPage.OnAppearing () [0x0008d] 在 C:\x\elunaapp\eLunaApp\PageRestaurantMap\RestaurantMapPage.xaml.cs:82 在 Xamarin.Forms.Page.SendAppearing () [0x00045] 在 D:\a\1\s\Xamarin.Forms.Core\Page.cs:452 在 Xamarin.Forms.ShellContent.SendPageAppearing(Xamarin.Forms.Page 页面)[0x0003b] 在 D:\a\1\s\Xamarin.Forms.Core\Shell\ShellContent.cs:127 在 Xamarin.Forms.ShellContent.SendAppearing () [0x00019] 在 D:\a\1\s\Xamarin.Forms.Core\Shell\ShellContent.cs:108 在 Xamarin.Forms.ShellContent.OnChildAdded (Xamarin.Forms.Element child) [0x00021] 在 D:\a\1\s\Xamarin.Forms.Core\Shell\ShellContent.cs:138 在 Xamarin.Forms.ShellContent.set_ContentCache(Xamarin.Forms.Page 值)[0x0003b] 在 D:\a\1\s\Xamarin.Forms.Core\Shell\ShellContent.cs:182 在 Xamarin.Forms.ShellContent.Xamarin.Forms.IShellContentController.GetorCreateContent () [0x0003c] 在 D:\a\1\s\Xamarin.Forms.Core\Shell\ShellContent.cs:68 在 Xamarin.Forms.Platform.Android.ShellSectionRenderer.OnCreateView(Android.Views.LayoutInflater inflater,Android.Views.ViewGroup 容器,Android.OS.Bundle savedInstanceState)[0x000f2] 在 D:\a\1\s\Xamarin.Forms .Platform.Android\Renderers\ShellSectionRenderer.cs:166 在 AndroidX.Fragment.App.Fragment.n_OnCreateView_Landroid_view_LayoutInflater_Landroid_view_ViewGroup_Landroid_os_Bundle_ (system.intPtr jnienv,system.intPtr native__this,system.intPtr native_inflater,system.intPtr native_container,System.savedPtr inflater_Landroid_view_ViewGroup_Landroid_os_Bundle_) \androidx.fragment.fragment\obj\Release\monoandroid90\generated\src\AndroidX.Fragment.App.Fragment.cs:1950 at (wrapper dynamic-method) Android.Runtime.DynamicmethodNameCounter.50(intptr,intptr,intptr)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?