При разрезании многоугольника ломаной линией движок геометрии сгруппирует определенные части вместе ?? Arcgis javascript api

При предварительном формировании действия разреза на многоугольнике с помощью полилинии некоторые из возвращенных геометрий группируются, а другие - нет?

У меня есть простая программа, в которой пользователь может создать многоугольник с помощью 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


person Austin Tarango    schedule 09.07.2019    source источник


Ответы (1)


Хотел бы я прокомментировать, а не просто ответить, но сложно сказать без кода.

В основном вы получаете составные многоугольники, вам нужно их разбить.

Используйте разбиение в своем массиве, чтобы разбить многоугольники, состоящие из нескольких частей, split ("]], [[")

Упростить полигоны с помощью службы геометрии тоже стоит того. (до и после резки)

https://developers.arcgis.com/rest/services-reference/geometry-service.htm

person Reza    schedule 09.07.2019
comment
Спасибо, я изучал функцию разнесения в других продуктах eris, но похоже, что в JS api ее нет. Я попробую упростить полигоны. Прямо сейчас я работаю над разбиением полигонов на кольца, но у меня проблемы с пространственными ссылками. - person Austin Tarango; 20.07.2019