ThinkGeo.com    |     Documentation    |     Premium Support

MouseCoordinates show coordinates only outside MapControl

Hi everybody.


I put the piece of code that shows the mouse pointer coordinates (screen coordinates and world coordinates), and it only updates label's text when the pointer its outside the MapControl but still inside the form here's the code i've used:


 

private void winformsMap1_MouseMove(object sender, MouseEventArgs e)
        {
            //Displays the X and Y in screen coordinates.
            statusStrip1.Items["toolStripStatusLabelScreen"].Text = "X:" + e.X + " Y:" + e.Y;

            //Gets the PointShape in world coordinates from screen coordinates.
            PointShape pointShape = ExtentHelper.ToWorldCoordinate(winformsMap1.CurrentExtent, new ScreenPointF(e.X, e.Y), winformsMap1.Width, winformsMap1.Height);

            //Displays world coordinates.
            statusStrip1.Items["toolStripStatusLabelWorld"].Text = "(world) X:" + Math.Round(pointShape.X, 4) + " Y:" + Math.Round(pointShape.Y, 4);
        }

Any idea ? i'm missing something?, thanks.



 



Displaying world and screen coordinates at mouse move is a very standard operation and we do that in all our Code Community projects for example. Actually, you can look at the latest Desktop project Ruler Overlay and you will see how to do that in the MapMouseMove event. code.thinkgeo.com/projects/show/ruleroverlay


Also, on the theme of displaying coordinates, we have also the project Decimal Degrees Formatting if you are interested. code.thinkgeo.com/projects/show/decimaldegrees



Thanks David and Val. 
  
 David I can’t read yout post here in the forum, but by email i saw your VB code and it’s essentially the same instructions but in other language(VB). 
  
 Val the “ruler overlay” code for mouseMove it’s exactly the same used in other community projects as you say, and it’s the same that i use in my app, i don’t know why it don’t behave as expected, in fact it works in a inverse way, load the mouse pointer coordinates in the labels.Text only if the pointer is in the form but outside the mapControl, i’ve tried uninstalling the map suite and reinstall but it didn’t make any difference. And why did you suggested “decimaldegrees” project? 
  
 Thanks again.

Your problem is very strange. I think that we would need a self contained sample app that narrows down the problem from you to determine what is going on.  
   I was suggesting the project "Formatting Decimal Degrees" just to show how to format decimal degrees to Degrees, Minutes and Seconds if you were interested. It was just some additional information related to displaying world coordinates if your data is in decimal degrees.

Hello Val. 
  
 Yes is a very strange problem, 'cause the code in my app is the same used in the Code Community proyects, as i said and pasted before. 
 Val, can you please explain what do you mean by:we would need a self contained sample app 
  
 Thanks for your attention

Since we cannot recreate the problem on our side, we would need a sample app from you that you can attach. In that sample app we would see the problem occuring before our eyes and that way it will help us determining where the problem is and how to fix it. There might be something  specific to your case where you have some setup in certain way causing this undesirable behavior that only a sample app from you would help fixing. I hope this is clear. Thank you.

Hi Val.

Thank you for your help, here goes the code attached. Hope you could find whats happening.



Form1.cs (10.7 KB)

Thank you for your attached file. Tomorrow morning, I will look at that and let you know what I find.

Hi Val. 
  
 Finally found what’s was wrong, the winformsMap1_MouseMove event handler was assigned to the forms’ MouseMove event instead mapControl’s MouseMove event (My fellow worker, Iván discovered it). My bad, sorry for take some of your time looking for an error in the code when the code its o.k. 
  
 Once again thanks for your support.

Wilmer, 
  
  You don’t have to apologize. That’s our job to help. I am glad your team discovered it. Do not hesitate to post any other questions you might have while developping with Map Suite Desktop Edition. 
  
 Val.