ThinkGeo.com    |     Documentation    |     Premium Support

Can't compile Traveling Salesman Sample

I’m trying to complile the TravelingSalesManProplem sample in Visual Studio 2010, and am getting the following error:



Can anyone give me an idea what’s up?
Thanks. Bob

 Hello Bob,


 
 This is because we have obsoleted the GetRouteViaVisitStops method and TspRoutingResult class in the previous version, for now we use the new GetRoute override method to finish the GetRouteViaVisitStops job.
 
 I have modified the code for you:
 

RoutingResult routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint, routingLayer.StopPoints, int.Parse(txtIterations.Text));

 
 Also after change TspRoutingResult to RoutingResult , you need change 

 
               foreach (PointShape stop in routingResult.OrderedStops)
               {
                   routingLayer.StopPoints.Add(stop);
               }

 Let us know if you meet any problem.
 
 Regards,
 
 Gary

 



The program now compiles, but now generates an error when you click the Find Route button on this line of code with this error:


RoutingResult routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint, routingLayer.StopPoints, int.Parse(txtIterations.Text));



It's funny that you would publish a Sample that doesn't work. :(


bob

 



Hello Bob, 
  
 Sorry for the inconvenience, that sample was uploaded long time ago so it does not fit the newest version, and thanks for the remind, we will update it. 
  
 For this exception, I can’t recreate it, once I click the Find Route button I can get the right result, what’s the dlls version are you using? 
  
 Regards, 
  
 Gary

MapSuiteRouting Version 6.0.0.0

Hi Bob,
 
A new version of the sample has been uploaded, please get it from wiki.thinkgeo.com/wiki/File:…100325.zip. I tested it with 6.0.0.0 and it works fine.
 
Regards,
 
Edgar

I am having the exact same issue. When I compile it is giving me a NullReference exception, I even downloaded the most recent project from the wiki. 



I haven’t changed anything whatsoever, just downloaded the Product Center and used it to install the MapSuite Desktop Edition and then the MapSuite Routing samples.



It is at the line:


RoutingResult routingResult = routingEngine.GetRoute( routingLayer.StartPoint, routingLayer.EndPoint, routingLayer.StopPoints, int.Parse( txtIterations.Text ) );



Exception details:

System.NullReferenceException was unhandled
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=MapSuiteRouting
  StackTrace:
       at vBM=.HhQ=.NBQ=()
       at vBM=.bBY=.kRY=()
       at vBM=.bBY=.iBY=()
       at vBM=.bBY=.GetRouteCore(RoutingSource routingSource, String startFeatureId, String endFeatureId)
       at ThinkGeo.MapSuite.Routing.RoutingAlgorithm.GetRoute(RoutingSource routingSource, String startFeatureId, String endFeatureId)
       at ThinkGeo.MapSuite.Routing.RoutingEngine.URY=(RoutingResult[,] UhY=, String UxY=, IEnumerable`1 VBY=, Int32 VRY=)
       at ThinkGeo.MapSuite.Routing.RoutingEngine.GetRouteCoreWithPoints(PointShape startPoint, PointShape endPoint, IEnumerable`1 stops, Int32 iterations)
       at ThinkGeo.MapSuite.Routing.RoutingEngine.GetRoute(PointShape startPoint, PointShape endPoint, IEnumerable`1 stops, Int32 iterations)
       at TravelingSalesmanProblem.Form1.button1_Click(Object sender, EventArgs e) in c:\Users\myname\Documents\ThinkGeo\Map Suite 8.0\Code Samples\Traveling Salesman Problem\DesktopEditionSample_TravelingSalesmanProblem_CS_100325\TravelingSalesmanProblem\Form1.cs:line 25
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at TravelingSalesmanProblem.Program.Main() in c:\Users\myname\Documents\ThinkGeo\Map Suite 8.0\Code Samples\Traveling Salesman Problem\DesktopEditionSample_TravelingSalesmanProblem_CS_100325\TravelingSalesmanProblem\Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 





Please help, this is the only component that I am interested in.








Hi Chad, 
  
 Welcome to ThinkGeo support forum. 
  
 I am sorry I haven’t got more information from the Exception details. So I want to reproduced your issue first, I created a new VM and do something like this: 
  
 1. Install our ThinkGeo 8.0 Product Center. 
 2. Install and active Map Suite Desktop Edition from Product Center. 
 3. Install and active Map Suite Routing. 
 4. Download “Map Suite Rouging Desktop Edition How Do I Samples” under “Code Samples” of Map Suite Routing. 
 5. After this project run, compiles it and each sample looks work well. 
  
 If I missed anything here please let me know. 
  
 And from your screen shot, it looks this exception is thrown from function “button1_click”, please let me know which sample you are testing. If that’s your code, please test our How Do I samples first for make sure whether all necessary dlls have been installed in your machine. 
  
 Any question please let us know. 
  
 Regards, 
  
 Don

Thanks Don, I managed to get it running under the “Map Suite Routing How Do I” sample via the TSP Analysis and TSP Analysis with fixed ends. 
  
 I am having some routing issues/questions but I will start a new thread as it’s unrelated to this one.

Hi Chad, 
  
 Thanks for update your status. 
  
 We will reply you in your new thread. 
  
 Regards, 
  
 Don