如何解决将 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 举报,一经查实,本站将立刻删除。