我正在写一个Xamarin表单应用程序,它在地图上显示一个纬度/经度坐标的多边形。我正在经历
this
我在我的Android项目中创建了一个名为
CustomMapRenderer.cs
它继承了Android的
MapRenderer
OnElementChanged
方法,但我遇到了一个错误
1)
CustomMapRenderer.OnElementChanged(ElementChangedEventArgs<View>)': no suitable method found to override
.
Argument 1: cannot convert from 'Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Xamarin.Forms.View> to 'Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Xamarin.Forms.Maps.Map>
我很困惑,因为这段代码没有从上面链接的教程中修改。
这是我的代码:
using Android.Gms.Maps;
using MapOverlay.Droid;
using SafeAgSystems.Models;
using System.Collections.Generic;
using Xamarin.Forms;
using Xamarin.Forms.Maps;
using Xamarin.Forms.Maps.Android;
[assembly: ExportRenderer(typeof(CustomMap), typeof(CustomMapRenderer))]
namespace MapOverlay.Droid
{
public class CustomMapRenderer : MapRenderer, IOnMapReadyCallback
{
GoogleMap map;
List<Position> shapeCoordinates;
protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs<View> e) //Error 1
{
base.OnElementChanged(e); //Error2
if (e.OldElement != null)
{
// Unsubscribe
}
if (e.NewElement != null)
{
var formsMap = (CustomMap)e.NewElement;
shapeCoordinates = formsMap.ShapeCoordinates;
((MapView)Control).GetMapAsync(this);
}
}
}
}