При предварительном формировании действия вырезания на многоугольнике с ломаной линией некоторые возвращаемые геометрии группируются, а другие нет?
У меня есть простая программа, в которой пользователь может создать многоугольник с помощью SketchViewModel. Затем пользователь создает полилинию с помощью SketchViewModel. Затем я беру геометрию из каждого эскиза и предварительно срезаю из geometryEngine. Я получаю массив геометрий из разреза и добавляю их в слой, удаляя исходный многоугольник и полилинию. Я ожидал, что получу каждую часть в отдельности, но по некоторым причинам некоторые будут объединены в одну геометрию, даже если они не связаны.
//polylineLayer and polygonLayer are graphiclayers
//submit is a html button to call the execution
submit.addEventListener("click", function() {
//subDivisions is an Geometry[] for the produced geometries
//ex. one line through a circle polygon would produce
// two geometries of each half. (this works)
// anything more complicated starts having grouping issues
// (see pictures)
var subDivisions =
geometryEngine.cut(polygonLayer.graphics.getItemAt(0).geometry,
polylineLayer.graphics.getItemAt(0).geometry);
polygonLayer.removeAll();
polylineLayer.removeAll();
//show the number of subdivisions
alert("size: " + subDivisions.length);
// add created geometries to the graphiclayer
for (var i = 0; i < subDivisions.length; i++){
tempGraphic = new Graphic ({
geometry: subDivisions[i]
});
polygonLayer.graphics.add(tempGraphic,i);
}
});
(извините за ссылки на фотографии, у меня нет 10 репутации для публикации фотографий, и это очень визуальный проект / проблема)
Открыть экран:
https://ibb.co/WDcgmSn
Нарисуйте первый многоугольник:
https://ibb.co/wd6CDbV
Рисование ломаной линии для разрезания многоугольника:
https://ibb.co/BG32863
Ожидаемые подразделения - 10 Фактические - 7:
https://ibb.co/0VMsHGg
Некоторые разделены на отдельные полигоны:
https://ibb.co/SKXCJR8
Другие не являются:
https://ibb.co/7WqNB9q
Все разбитые кусочки:
https://ibb.co/Pr0smrw