我刚刚下载了naxam mapbox,却完全失去了github页面的帮助,而且似乎没有其他人可以在xamarin.forms应用程序中实现地图视图的任何有用的东西,谢谢。
答案 0 :(得分:0)
短弓箭手:
长答案:
如果您确实要在Xamarin项目中使用 Mapbox ,则Android和iOS的Naxam绑定库今天仍在工作( 18/06 / 2019 ),因此让它用于Xamarin Forms项目的一种方法是在各自的项目中实现两个sdk,并在 Custom View Renderer 中使用它们(要小心,因为这些项目仍然需要其他Nuget软件包才能运行,并且在安装它们时不会警告您,请确保在我上面给出的链接中看到依赖项。
在项目中拥有地图的其他方法是使用MapsUi(请记住,MapsUi是 TileBased ,而Mapbox是 VectorBased ,因此您可能会看到较少的地图使用MapsUi时的流动性)。我将在此处为iOS中的自定义渲染保留一些相关代码,以开始实施MapsUi:
MapViewRenderer.cs
public class MapViewRenderer : ViewRenderer<MapsUIView, Mapsui.UI.iOS.MapControl>
{
Mapsui.UI.iOS.MapControl mapNativeControl;
MapsUIView mapViewControl;
protected override void OnElementChanged(ElementChangedEventArgs<MapsUIView> e)
{
base.OnElementChanged(e);
if (mapViewControl == null && e.NewElement != null)
mapViewControl = e.NewElement;
if (mapNativeControl == null && mapViewControl != null)
{
var rectangle = mapViewControl.Bounds;
var rect = new CGRect(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
mapNativeControl = new Mapsui.UI.iOS.MapControl(rect)
{
Map = mapViewControl.NativeMap,
Frame = rect
};
SetNativeControl(mapNativeControl);
}
}
}
这是基于如何在iOS的Custom View Render中实现MapView的基础,Android需要类似的代码,当然还有Custom Renderer本身,其中有大量的相关教程,例如这个:Source 1 Source 2