У меня есть несколько перекрывающихся форм. Я хочу иметь возможность делать отверстия в самой большой форме, содержащей все более мелкие фигуры. отверстия будут представлять меньшие формы в большей форме.Выполнение отверстий в фигурах GeoJson - clipperLib
Я использую C# версии ClipperLib:
const double precisionFactor = 1000000000000000.0;
//precondition: all your polygons have the same orientation
//(ie either clockwise or counter clockwise)
Polygons polys = new Polygons();
multiPolygon.ForEach(x =>
{
Polygon polygon = x.First().Select(y => new IntPoint()
{
X = (long)(y[0] * precisionFactor),
Y = (long)(y[1] * precisionFactor)
}).ToList();
polys.Add(polygon);
});
Polygons solution = new Polygons();
Clipper c = new Clipper();
c.AddPaths(polys, PolyType.ptSubject,true);
c.Execute(ClipType.ctDifference, solution,
PolyFillType.pftNonZero, PolyFillType.pftNonZero);
var coordinates = solution.SelectMany(x => x.Select(y=> (IList<double>)new List<double>()
{
y.X/precisionFactor,
y.Y/precisionFactor
}).ToList()) .ToList();
return coordinates;
, но форма, которая получает возвращается самая большая форма на картинке выше.
GeoJSON Файл: http://s000.tinyupload.com/download.php?file_id=62259172894067221043&t=6225917289406722104327028
Вы когда-нибудь решали эту проблему? Я думаю, у меня такая же проблема – Dodgson86
http://stackoverflow.com/questions/40148301/clipperlib-issue-cutting-geojson-polygons – Dodgson86