Remove graphics from graphics layer

445
8
Jump to solution
03-11-2020 11:57 PM
Highlighted
Occasional Contributor II

Hi, i get the following link How to remove all graphics from view  to remove graphics from layer.

I also want  to remove all polygons from graphics layer but its not working in my case as below:

  //Clear all graphics
    jQuery('#main').on('click', '.clear_all', function(){
      view.graphics.removeAll();
    });

Reply
0 Kudos
1 Solution

Accepted Solutions
Highlighted
MVP Esteemed Contributor

Rajni,

   Then that means the graphics are being added to a different graphics layer (GL) then. You are trying to clear the graphics in the Views graphics layer but you are adding graphics to a GraphicsLayer class var'd as "graphicsLayer" so you need to removeAl for that  GL instead.

graphicsLayer.removeAll();

View solution in original post

8 Replies
Highlighted
MVP Esteemed Contributor

Do you get any errors in the browsers console? Are you sure that the graphics have been added to the views graphics and not some other graphics layer?

Reply
0 Kudos
Highlighted
Occasional Contributor II

No error is in console. As you can see in code it is being added to graphics layer

Reply
0 Kudos
Highlighted
MVP Esteemed Contributor

Rajni,

   Then that means the graphics are being added to a different graphics layer (GL) then. You are trying to clear the graphics in the Views graphics layer but you are adding graphics to a GraphicsLayer class var'd as "graphicsLayer" so you need to removeAl for that  GL instead.

graphicsLayer.removeAll();

View solution in original post

Highlighted
Occasional Contributor II

Ok Rob, it worked but i am using a single graphics layer which is used everywhere and added it to webmap, then how can u say it is added to different graphics layer. same webmap added to view. same graphics layer used in sketch view model. on graohicslayer newDevelopmentGraphic is also added

//

 graphicsLayer = new GraphicsLayer();
        webmap.add(graphicsLayer);

 // Create a new instance of sketchViewModel
          sketchViewModel = new SketchViewModel({
            view: view,
            layer: graphicsLayer,

//

          graphicsLayer.addMany([newDevelopmentGraphic]);

Reply
0 Kudos
Highlighted
MVP Esteemed Contributor

Rajni,

   What you are not understanding is that the MapView has default GraphicsLayer that is referenced by view.graphics. Thus a different GraphicsLayer then your graphicsLayer variable.

Highlighted
Occasional Contributor II

Hi Sir

 Their is some time a situation arise when i clear the graphics, boundaries disappear but vertices remain.

I have found a relative link from older version, but what command should i use in 4.14 to remove vertices even.

This is the way i am clearing my all graphics, so so i need to deactivate my buttons or what some editing mode while clearing graphics.

 jQuery('#main').on('click', '.clear_all', function(){
      //clear all graphics added to graphics layer
      clickValidation=false;
     graphicsLayer.removeAll();
      sketchViewModel.cancel();

    });

Delete Graphic in Edit Mode Retains Vertices on Map - Possible Bug 

Reply
0 Kudos
Highlighted
MVP Esteemed Contributor

Rajni,

   You need to make sure you do not have a edit occurring before your delete all graphics. Meaning you need to do sketchViewModel.complete(); first.

Reply
0 Kudos
Highlighted
Occasional Contributor II

yeah i have done it

   //Clear all graphics
    jQuery('#main').on('click', '.clear_all', function(){
      //clear all graphics added to graphics layer
      clickValidation=false;
      sketchViewModel.complete();
      sketchViewModel.cancel();
      graphicsLayer.removeAll();
    });

But it do not solve my problem because i keep sketchviewmodel reshape on in add graphics function

 else if (event.state === "cancel" || event.state === "complete") {
            //check if the graphics are done being reshaped, printout updated graphic's geometry and reshape stage.           
            // graphic  reshaping has been completed or cancelled
              sketchViewModel.update([graphic], { tool: "reshape" });
          }

Reply
0 Kudos