使用位置动态加载多边形
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])));
}
我正在尝试创建一个坐标数量不确定的地理围栏,但 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])));
}