ThinkGeo.com    |     Documentation    |     Premium Support

Pan map while using Trackline

Hello,


The application I am working on lets the user draw a "route" using the TrackLine mode. The problem is that I cannot find a way to pan the map while the user is drawing a line. This is necessary because the entire route will not always be contained within the map extent/current viewport. As soon as I change the mode to Pan the trackline disappears. I have also tried to manually pan the map when the user moves the mouse outside the viewport using MouseLeave event, but it will not work when the user is currently drawing a line.


Any ideas?



Hi Sindre,  
  
 One idea would be to set the TrackLine.Mode = TrackMode.None on the MouseLeave Event or to have a button to set TrackLine.Mode = TrackMode.None. 
 Once the TrackMode is set to .None the user could then pan the Map with a click and drag and then have them click on a button to continue drawing their track line. This button would call winformsMap1.TrackOverlay.TrackMode = TrackMode.Line; which would continue their line.

Hello,


Thank you for the reply.


I cannot find the TrackMode.None. I have to mention I am using MapSuite Desktop version 2. I tried to set the map mode to ModeType.Selection and ModeType.Pan, but as soon as I change the MapMode the trackline disappears. Any other way to accomplish this?


A little more background information:

I am trying to create a route planning tool, with support for editable waypoints. I.e. it should be possible for the user to draw a "route" on the map, where each leg is connected by a waypoint. Key features that must be supported:


- At any time it should be possible to click and drag on a waypoint to adjust the route dynamically

- It must be possible to add new waypoints at the start, in the middle, and at the end of route/line afterwards

- It must be possible to click on a leg (line between two waypoints) and choose whether it should be drawn as rhumb line or great circle

 


Based on the above information, is this at all possible with MapSuite and how much custom coding approx will be needed?


Your advise is greatly appeciated!



Hello Sindre,


Thanks for your further information, sorry to say, 2.0 it too old to support, I'm afraid you need upgrade to the 6.0.


After you upgrade to the 6.0 below is the code to solved your problem.


Please get the latest version 6.0.0.268 or 6.0.268.0 then try the sample code below: 
private void DisplayMap_Load(object sender, EventArgs e)

        {

            winformsMap1.MapUnit = GeographyUnit.DecimalDegree;

            winformsMap1.CurrentExtent = new RectangleShape(-80, 80, 80, -80);

 

            WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new WorldMapKitWmsDesktopOverlay();

            winformsMap1.Overlays.Add(worldMapKitDesktopOverlay);

 

            interactiveOverlay.TrackMode = TrackMode.None;

            winformsMap1.TrackOverlay = interactiveOverlay;

            winformsMap1.MouseClick += new MouseEventHandler(winformsMap1_MouseClick);

           

            winformsMap1.Refresh();

        }

 

        TrackInteractiveOverlay interactiveOverlay = new TrackInteractiveOverlay();

 

        void winformsMap1_MouseClick(object sender, MouseEventArgs e)

        {

            if (e.Button == System.Windows.Forms.MouseButtons.Right)

            {

                if (interactiveOverlay.TrackMode == TrackMode.None)

                { interactiveOverlay.TrackMode = TrackMode.Line; }

                else interactiveOverlay.TrackMode = TrackMode.None;

            }

        }
 


Regards, 


Gary



Ok, thanks. What about the other questions? Would it be possible to build a "route planner" tool like explained, with editable waypoints using MapSuite Desktop (latest version)?

Hi Sindre,


Mapsuite can successfully support your “rout planner”, attached is the sample code, please have a try.


Here is the result


 


Hope it helps


Gary



10916sample.txt (5.04 KB)

Great, thanks :) Is this also possible with MapSuite Desktop 5? We already have a license for v5, and in order to use v6 we would need to purchase a new license I believe.

Hello Sindre, 



Sorry for my misunderstanding before about upgrade to 6.0.


And I will try to modify this sample to make it run on version 5.0, once it's done I will re-upload here and let you know.


Sorry for the inconvenience.



Regards, 



Gary



 Hello Sindre,


 
I believe you can use version 5.5, right? I did test on 5.5.162.0 and the sample works fine, can you get the attachment dlls and have another try?
 
Regards,
 
Gary

Desktop_Edition.7z (912 KB)