我是Xamarin.forms的新手,需要使用UWP平台的地图。我在我的PCL中安装了Xamarin.Forms.Maps nuget包。并在UWP部分的App.xaml.cs中调用了init函数,如下所示:
但是,在部署时看不到地图。我也添加了一些引脚,我看到的是一些蓝色屏幕,带有引脚。我尝试了很多选择,但还没有找到运气。 以下是调用地图的代码段:
Map map = new Map(MapSpan.FromCenterAndRadius(new Position(51.5074, 0.1278), Distance.FromMiles(10)));
map.MapType = Xamarin.Forms.Maps.MapType.Hybrid;
map.HeightRequest = 700;
map.WidthRequest = 725;
map.IsShowingUser = true;
var position1 = new Position(51.5033, 0.1195);
var pin1 = new Pin { Type = PinType.Place, Position = position1, Label = "label1", Address = "address1" };
map.Pins.Add(pin1);
var position2 = new Position(51.5014, 0.1419);
var pin2 = new Pin { Type = PinType.Place, Position = position2, Label = "label1", Address = "address1" };
map.Pins.Add(pin2);
this.mapGrid.Children.Add(map);
我做错了吗?或者是否有任何缺少的参考,我应该添加,以使这项工作?请帮帮我。 P.S-相同的解决方案在我的同事的机器上加载地图,但不会在其他人的工作上加载。机等。
此致 斯瓦特
请在下面找到我的UWP参考的屏幕截图: UWP reference screenshot
答案 0 :(得分:0)
您需要使用System.Reflection添加此解决方案才能正常工作。
这似乎是一些框架和UWP的已知挑战。在UWP项目的App.Xaml.cs中,在OnLaunched事件中,在以下代码行之后:
rootFrame.NavigationFailed += OnNavigationFailed;
添加 List assembliesToInclude = new List();
//Now, add all the assemblies your app uses
assembliesToInclude.Add(typeof(Syncfusion.SfRating.XForms.UWP.SfRatingRenderer).GetTypeInfo().Assembly);
assembliesToInclude.Add(typeof(Xamarin.Forms.Maps.UWP.MapRenderer).GetTypeInfo().Assembly);
Xamarin.Forms.Forms.Init(e, assembliesToInclude);
确保此处显示的... Forms.Init行替换代码中保存现有的初始化程序调用。
答案 1 :(得分:-1)
您需要在Google API控制台上启用google map API