使用位置动态加载多边形

Dynamically load Polygon with Positions

我正在尝试创建一个坐标数量不确定的地理围栏,但 C# 和 Xamarin Forms 地图不接受动态加载的内容。我已经确保总是会有三个或更多的位置来创建地理围栏。我试过这个, coordinates 是一个字符串数组:

Polygon geofence = new Polygon
{
    StrokeColor = Color.Green,
    FillColor = Color.Green,
    Geopath = 
    {
        foreach (string coordinate in coordinates)
        {
            string[] LongAndLat = coordinate.Split(',');
            new Position(Convert.ToDouble(LongAndLat[0]), Convert.ToDouble(LongAndLat[1]));
        }
    }
};

这基本上告诉我 C# 不期望 Geopath 参数中的函数,但我不知道如何在不执行它的情况下到达我想要的位置。

有没有办法正确地做到这一点?

C# 语法无效。由于 Geopath 属性 是只读的,您必须稍后分配 属性。此解决方案有效:

string[] coordinates = geodata.Split(';');
                
Polygon geofence = new Polygon
{
    StrokeColor = Color.Green,
    FillColor = Color.FromRgba(0, 255, 0, 0.4)
};

foreach(string coordinate in coordinates)
{
    string[] LongAndLat = coordinate.Split(',');
    geofence.Geopath.Add(new Position(Convert.ToDouble(LongAndLat[0]), Convert.ToDouble(LongAndLat[1])));
}