ThinkGeo.com    |     Documentation    |     Premium Support

Programatically cancel track shape drawing

Is there a way to programatically cancel drawing a track shape.  I've tried setting the drawing mode to none and clearing the internal features, but my drawing seems to stay and if I change track mode again, it starts drawing from where it left off last time.  I want to programatically cancel the current drawing shape.  Thanks


 


.Ryan.



 Hi Ryan,


 
Here is a solution for you, first of all ,we need create a subclass of TrackInteractiveOverlay as following code:
public class NewTrackInteractiveOverlay : TrackInteractiveOverlay
{
    public void Cancel()
    {
        TrackShapeLayer.InternalFeatures.RemoveAt(TrackShapeLayer.InternalFeatures.Count - 1);
        Vertices.Clear();
        TrackMode = TrackMode.None;
        Refresh();
    }
}

 
The Vertices is a protected property, we need to clear this collection to avoid the weird behavior in the subclass. 
 
Then create an instance of the new overlay and replace the existing track overlay like following code in the map loaded event:
Map1.TrackOverlay = new NewTrackInteractiveOverlay();
 
Hope it helps, thanks,
Howard

Thank you, that works perfectly! 
  
 .Ryan.

Hello Ryan, 
  
 You are welcome, feel free to let us know your problems. 
  
 Regards, 
  
 Gary