ThinkGeo.com    |     Documentation    |     Premium Support

Editing

Hi,


    I would like to move a selected line in the polygon in edit mode using mouse drag. Can you please help me how to do that: Here is the code i have in edit mode:


if (editMode)


{


Map1.TrackOverlay.TrackMode = TrackMode.None; 


foreach (Feature feature in Map1.TrackOverlay.TrackShapeLayer.InternalFeatures)


{


if (!Map1.EditOverlay.EditShapesLayer.InternalFeatures.Contains(feature))


{


Map1.EditOverlay.EditShapesLayer.InternalFeatures.Add(feature);


}


}


Map1.TrackOverlay.TrackShapeLayer.InternalFeatures.Clear();


Map1.TrackOverlay.Refresh();


Map1.EditOverlay.CalculateAllControlPoints();


Map1.EditOverlay.Refresh();


Edit.Content = "Edit Mode Off";


}


Thanks in Advance - Varun



 


Hi, Varun
Firstly, as you mentioned in your post, you’re trying to drag and move a line in a polygon in edit mode, it’s a little bit confusing because once the line is moved, the polygon is no longer a polygon (it becomes a line and a multiline). I beg your pardon for having to ask for the purpose why you want to have this done, so that I can provide you a better solution. As far as I can see, there is a way to do it, but it’s complicated.
Since you can get all the vertices in the polygon, you can easily get the line you clicked on, and then generate a new line as a copy of the line in the polygon and perform the dragging without splitting the polygon into two parts.
However, if it’s what your need to split the polygon, it’s better that to store the “polygon” separately, such as a collection of line.
Here’s my another guessing, is that you’re trying to stretch the polygon by dragging a side of it? If so, this would require a totally different process.
Secondly, it seems that the code sample you provided did not contain the mouse drag part, and it’s very hard for me to get a general idea of what you’re trying to do. Could you please provide us a more detailed code sample? Sorry for the inconvenience.
Further information is really appreciated and I’m looking forward t it.
Thanks.
James

Hi James,


                Thanks for the various options to show. The problem here is that, there is a reason for not implementing the MouseDrag event. I was seeing an exception raising whenever i click a point on the line (exception: MissingManifestResourceException).


 


Could you please tell me the reason for this exception?


Thanks in advance - Varun.



 Hi, Varun



In fact, you don’t have to implement the MouseDrag event, what you need to do is register and handle the FeatureDragging or FeatureDragged event of the EditInteractiveOverlay, you can get the Feature you clicked and dragged inside the event argument. Additionally, if you’re confused by the reason for the exception, you can provide us your sample app, so that we can have a look at it.


I hate to bother you but I need to confirm what your goal of doing this is and how you want this be done so that I can provide you a better solution. I’ve attached some images below; you can have a look at it and tell me which one is how you want the dragging be done.


Case A: Split the polygon:























Case B: Stretch the polygon:





Any further questions please let me know.


Thanks.


James



 Varun,


I think our forum has problem that can not upload image, so I attached the word file hope you can get it.


Thanks,


James



reply_8636__update.docx (23.7 KB)

Hi James,


                Thank you. That's a prompt reply. My scenario is case B(Stretching the polygon - this is a requirement that has come out as a possiblity which would subsequently happen in the future), just as you mentioned in the word document.


I am afraid i couldn't copy the project due to size limits. I am furthur investigating on it. Meanwhile, to satisfy the scenario B, may i know which class in the ThinkGeo library, would be helping me to do that and also, how to use it?


Thanks in Advance - Varun.


 



Hi James,


                I couldn't copy the entire project, but was able to copy the silverlight application file - mainpage.xaml.cs file. Please comeback to me if this is not sufficient.



Hi James,


               Sorry, the previous upload is incomplete and is causing some problem. Hope this shouldn't be a problem now. Please comeback to me if this is not sufficient.


 


Thanks in Advance - Varun.



I guess there is something wrong in my post. I was unable to upload the file. I am giving a last trial this time.



Hi James,


                I could do advance debugging on my application by enabling CLR exceptions to catch and i was able to find the exact location that is causing the exception to raise. I have attached two png files for your reference. Can you please now revert back to me for the exact cause of the exception and how to fix it?


 


Thanks in Advance - Varun



 


Varun,
 
Sorry for inconvenience, if you still want to provide something to us, you can send email with attachment to forumsupport@thinkgeo.com and let him forward to James.
 
About the exception, from the call stack, I found the exception is caused by “decimal degree longitude out of range”, so please check your data unit and set the correct unit for map.
 
Thanks,
James

Hi James,


                 I have tried setting the MapUnit to DecimalDegree as it is the only unit that is not causing the exception to raise. But, the problem here is that the polygon shape is disappeared and the complete map is filled with the color of the polygon shape.I had two things in mind here:


1: Why Meter unit is not accepted in Edit mode?(Even if you say it accepts Meter Unit, i could understand that it is internally converting to Decimal degree, and the conversion is going wrong to my perception for which it is throwing DecimalDegreeLongLatOutOfRange...If my assumption is not wrong i think, while converting from Meter to Decimal degree, the value is either going above 180 or -180).


2: If i use Decimal degree, i still wonder why the entire map is filled with the color of the polygon shape and also, the polygon shape is disappearing.


 


I will send you my project to the above mentioned mail. Kindly, get back to me with the possible cause.


 


Thanks in Advance - Varun.



Varun, 
  
 The exception “Could not find any resources appropriate for the specified culture or the neutral culture” is a bug absolutely. We have fixed it. Sorry for the inconvenience. You can get the package(4.5.81.0 or later) and update your application.  
  
 1. I don’t understand what do you mean. The sample you sent us is using meter unit, and everything is ok. 
 2.  According to the sample, I guess you are using bing maps, the map unit of bing maps is meter, so don’t use decimal degree. 
  
 Thanks, 
 James

Hi James,


              I think the build will be available tomorrow. Meanwhile, i was trying to use GoogleMaps as the background layer and was seeing the same result. Could you suggest me which unit does the GoogleMaps use?


I was mainly looking for the three features to implement in my Application:


1: Resize a line in the polygon using certain angle.


2: Move a line in between of the polygon and see the size that divides the polygon should also be able to change the area.


3: Stretch one of the lines in the polygon.


 


Kindly suggest how should i start on this.


 


Thanks in Advance - Varun.



Varun, 
  
 The map unit of GoogleMaps is meter, too.  
  
 1. It can be implemented on the client side. 
 2. I think you have to some operation on the server side 
 3. Stretch one? I didn’t get it. There are two lines at least will be stretched if you want to stretch lines. 
  
 There is a sample named “Draw and Edit Shapes” in our “HowDoISamples”. You could refer it.  
  
 Thanks, 
 James 


Hi James,


               I tried with the 4.5.81.00 daily Evaluation Build, but i am sorry to say that the exception is repeating, but in another way. Please find the attached bmp screenshot that says about the exception. 

I guess this is from the same point where the exception is seen last time and it is happening in the process of converting the value of the point on which the mouse click event is generated from meter to decimal degree. Please correct me if i am wrong.


Thanks in Advance - Varun.



Varun, 
  
 Thanks for your detail information. 
  
 We have found the bug and fixed it, you can get the latest version 4.5.86.0 and try it again. 
  
 Just a little suggestion: 
  Could you provide the stack-trace by text because the screen-shot is too small to read next time. 
  
 Thanks, 
 James 


Hi James,


                   I took the latest build and used it for my application. It is working fine...thank you.



Varun, 
  
 I am glad it’s working with you, feel free to let me know if you have more questions. 
  
 Thanks, 
 James