ThinkGeo.com    |     Documentation    |     Premium Support

Stop Edit TrackOverlay

 How do I stop editing the TrackOverlay?

Currently I am trying to do so:



  winformsMap1.EditOverlay.CanAddVertex = false;

  winformsMap1.EditOverlay.CanDrag = false;

  winformsMap1.EditOverlay.CanRemoveVertex = false;

  winformsMap1.EditOverlay.CanResize = false;

  winformsMap1.EditOverlay.CanRotate = false;

  winformsMap1.EditOverlay.CalculateAllControlPoints ();

  winformsMap1.Refresh ();



Yet it is possible to drag the vertex!



See the print screen


 


Tanks


 



Carlos, 
  
 Thanks for your post, you just need to set the map’s property as below: 
  
 winformsMap1.TrackOverlay.TrackMode = TrackMode.None; 
  
 Then you can stop editing the track overlay, dose I understand it properly? If there are any misunderstandings please let me know again, 
  
 Thanks, 
  
 Scott,

 Ok, so I stop editing it, but how do I not get more drawings

selected to Rotate, Move, Drag Vertice?



Attached below a sample



Steps to run the example:



1 - TrackRectangle;

2 - Edit

3 - Cancel Edit;



Note that in this same sample after running the command below is still possible to dragthe vertex. button (Cancel Edit)

winformsMap1.EditOverlay.CanAddVertex = false;

   winformsMap1.EditOverlay.CanDrag = false;

   winformsMap1.EditOverlay.CanRemoveVertex = false;

   winformsMap1.EditOverlay.CanResize = false;

   winformsMap1.EditOverlay.CanRotate = false;

   winformsMap1.EditOverlay.CalculateAllControlPoints ();

   winformsMap1.Refresh ();



What I need is to disable the editing options!



Thanks



Carlos, 
  
 Thanks for your post and question. 
  
 Following code sample provided in our wiki should satisfy your requirement by canceling the tracking with Esc key pressed. 
 wiki.thinkgeo.com/wiki/Map_Suite_Desktop_Edition_All_Samples#Canceling_TrackOverlay 
  
 Any more questions please feel free to let me know. 
  
 Thanks. 
  
 Yale 


 Not what I want.



I want to continue to draw the map, but remove the options to resize, drag,

Vetex drag, rotate etc..


See the example I sent.




Thanks



Carlos, 
  
 Could you zip your sample into a self-running example? I read the posts a few times but still not very clear what is going to be achieved, I think it would be helpful and convenient to see how it  is going with the sample. 
  
 Thanks. 
  
 Yale 


Yale,


  I wrote a sample app according to the requirements of Carlos Angelo where you track a reactangle, edit it and then stop showing the editing options and be able to track a new rectangle again by clicking on a button . See the code below. An error occurs at the line winformsMap1.Refresh(); in btnMisc_Click. Why is this error happening? Am I doing something wrong or is it a bug?


Carlos Angelo,


 Thank you for your patience. What you are asking is possible and we will show you the final result after we resolve those issues.



private void LoadPost9069()
{
    winformsMap1.ThreadingMode = MapThreadingMode.SingleThreaded;
    winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
    winformsMap1.CurrentExtent = new RectangleShape(-84, 11, -64, 0);
    winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromArgb(255, 198, 255, 255));

    winformsMap1.TrackOverlay.TrackEnded += new EventHandler<TrackEndedTrackInteractiveOverlayEventArgs>(TrackOverlay_TrackEnded);
    winformsMap1.TrackOverlay.TrackMode = TrackMode.Rectangle;

    winformsMap1.Refresh();
}

private void TrackOverlay_TrackEnded(object sender, TrackEndedTrackInteractiveOverlayEventArgs args)
{
    winformsMap1.TrackOverlay.TrackShapeLayer.InternalFeatures.Clear();
    winformsMap1.TrackOverlay.TrackMode = TrackMode.None;

    RectangleShape rectangleShape = (RectangleShape)args.TrackShape;

    winformsMap1.EditOverlay.EditShapesLayer.InternalFeatures.Add(new Feature(rectangleShape));

    winformsMap1.EditOverlay.CanRotate = true;
    winformsMap1.EditOverlay.CanAddVertex = true;
    winformsMap1.EditOverlay.CanDrag = true;
    winformsMap1.EditOverlay.CanRemoveVertex = true;
    winformsMap1.EditOverlay.CanReshape = true;
    winformsMap1.EditOverlay.CanResize = true;
    winformsMap1.EditOverlay.CalculateAllControlPoints();

    winformsMap1.Refresh();
}

private void btnMisc_Click(object sender, EventArgs e)
{
    winformsMap1.EditOverlay.CanRotate = false;
    winformsMap1.EditOverlay.CanAddVertex = false;
    winformsMap1.EditOverlay.CanDrag = false;
    winformsMap1.EditOverlay.CanRemoveVertex = false;
    winformsMap1.EditOverlay.CanReshape = false;
    winformsMap1.EditOverlay.CanResize = false;
    winformsMap1.EditOverlay.CalculateAllControlPoints();

    winformsMap1.TrackOverlay.TrackMode = TrackMode.Rectangle;

    winformsMap1.Refresh(); //"The given key was not present in the dictionary" error occurs here.
}


Val, 
  
 After some initial test, I think this is an hidden bug when seeting the CanReshape to false, I will report this our development team to see if we can get it resolved. 
  
 Any more questions please feel free to let me know. 
  
 Thanks. 
  
 Yang 


Gentlemen, 
  
 I have fixed this bug in DesktopEdition, please get the latest version 4.5.164.0 or later and try it again. 
  
 Feel free to let me know if you have more questions. 
  
 Thanks, 
  
 James 


Yang, James, 
  
  I retested my code with the latest build and this is working now. Thank you for taking care of that. 
  
 Carlos Angelo, 
  
  You can now get the Bug daily build 4.5.0.164 and this should work for you now. Thank you for your interest in MapSuite and in helping us making MapSuite better.