как выбрать и удалить графику (по массиву колец) в ArcGIS API для Javascript 3.x - PullRequest
2 голосов
/ 07 октября 2019

Я использую JSAPI 3.x.

У меня есть графический слой в Feature Layer, и я хочу выбрать и удалить графический элемент (по кольцам) по одному. Как мне этого добиться?

На данный момент, когда я выбираю графику, она выбирает всю графику, а .clear () или .remove () не работают.

enter image description here

Выбор и удаление графического объекта на основе массива этих колец enter image description here

1 Ответ

0 голосов
/ 09 октября 2019

Я бы использовал событие featureLayer click. В обратном вызове я бы создал временный многоугольник из каждого кольца графика, по которому щелкали, чтобы найти, в какое кольцо попадает точка карты, а затем я его удалю.

featureLayer.on("click", function(evt) {
   var graphic = evt.graphic;
   var mapPoint = evt.mapPoint;

   if (graphic.geometry.rings.length > 1) {
       graphic.geometry.rings.forEach(function(ring, ringIndex) {
           var tempPolygon = new Polygon(graphic.spatialReference).addRing(ring));
           if (tempPolygon.contains(mapPoint) {
              graphic.geometry.removeRing(ringIndex);
           }
       });
    }
});
...