/// <summary>
/// 合并多个GeoJSON的多段线
/// </summary>
/// <param name="alist"></param>
/// <returns></returns>
private static GeoJSON.Net.Geometry.MultiLineString MergeMultiLine(List<GeoJSON.Net.Geometry.MultiLineString> alist)
{
GeoJSON.Net.Geometry.LineString resultLineString = new GeoJSON.Net.Geometry.LineString();
resultLineString.Coordinates = new List<GeoJSON.Net.Geometry.Position>();
foreach (GeoJSON.Net.Geometry.MultiLineString aMultiLineString in alist)
{
foreach (GeoJSON.Net.Geometry.LineString aLineString in aMultiLineString.Coordinates)
{
foreach(GeoJSON.Net.Geometry.Position aPos in aLineString.Coordinates)
{
if (0 < resultLineString.Coordinates.Count && resultLineString.Coordinates.Any(x => CalculateDistance.Calculate(x.X, x.Y, x.Z, aPos.X, aPos.Y, aPos.Z) < 1e-5))
{
continue;
}
resultLineString.Coordinates.Add(aPos);
}
}
}
return new GeoJSON.Net.Geometry.MultiLineString(new List<GeoJSON.Net.Geometry.LineString>() { resultLineString });
}
C#合并多个GeoJSON的多段线
最新推荐文章于 2024-08-01 19:00:36 发布