ThinkGeo.com    |     Documentation    |     Premium Support

RoutingResult and distance

 Hi all.


What am i missing here? 


I have a RoutingResult rr =  ... etc


But when i print the result of rr.Distance It's the same until a (dot) is parsed on the way (See screenshot for what (dot) is)


How do i get the exact distance from start to end and not from a nearest (dot)?


-Niels




Hi Niels,


We confirmed it's a bug in routing, please get the 6.0.114.0 or 6.0.0.114 and have a try. Notice that you should use the RoutingEngine.GetRoute methods which accept the PointShape as parameter instead of id.




Hope it helps,


Edgar



 Do I have to regenerate my routable roads shp file?


I have just testet with 6.0.0.114 and still same problem please see attached screenshots and note the different start points but the route length is the same..


Try using attached zip sample data.


- Niels




001_sampledata.zip (5.13 KB)

The shape file is OK, I tested and it works properly with 6.0.0.114:




I think the reason is that you're still using the RoutingEngine.GetRoute(string , string) method, please change it to RoutingEngine.GetRoute(PointShape , PointShape), like the code below:



Hope you can get the correct result.


Edgar


 



 Are you using a newer build of map suite routing explorer? In my second response I used routing explorer v. 1.0, and I still get wrong result.


If I right click and select route from here and route to here en the same road where no dots / crosing roads i get this error message: "the parameter you provided is invalid, please make sure that the start and the end are not null nor equal, the stops count is not 0."


Just for funn I uninstalled map desktop & routing, reinstalled and updated to 6.0.0.114, but still get the wrong result.


This is the getroute code i use in my program:


So I do use Pointshape in my getroute..



        public static RoutingResult GetRoute(ThinkGeo.MapSuite.Core.PointShape startPoint, ThinkGeo.MapSuite.Core.PointShape endPoint)


        {


            RoutingResult routingResult = new RoutingResult();


 


            try


            {


                


                FeatureLayer dkRoadsLayer = Layers.Road.RoadLayer.GetDkRoadsLayer();


                dkRoadsLayer.DrawingExceptionMode = DrawingExceptionMode.ThrowException;


                dkRoadsLayer.Open();


 


                RtgRoutingSource rtg = new RtgRoutingSource(@"D:\GisData\Export\roads\merged\roads_dk.routable.rtg");


                RoutingSource routingSource = rtg;


                routingSource.Open();


                //var algorithm = new DijkstraRoutingAlgorithm();


                var algorithm = new AStarRoutingAlgorithm();


                RoutingEngine routingEngine = new RoutingEngine(routingSource, algorithm, dkRoadsLayer.FeatureSource);                


                routingEngine.RoutingResultsType = RoutingResultsType.RouteSegmentsAndFeatures;


                routingResult = routingEngine.GetRoute(startPoint, endPoint);


                routingSource.Close();


                dkRoadsLayer.Close();


            }


            catch (Exception ex)


            {


                doLog.ErrorException(String.Format("Startpoint: {1} *** Endpoint: {2} ***** Ex Message: {0}", ex.Message, startPoint, endPoint), ex);                


                throw;


            }


            return routingResult;


        }




The version of my explorer’s version is 1.0 too, can you send a sample that could recreate your scenario to me so I can help to find the problem? 
  
 Thanks, 
  
 Edgar

I have uploaded the sample data and a screencast of the "how to reproduce" to the ftp site.


 



Attached is the new version of RoutingExplorer which I just modified the RoutingEngine.GetRoute(string , string) to RoutingEngine.GetRoute(PointShape, PointShape), and with the latest version 6.0.116.0 or 6.0.0.116  it works fine. Please get it and have a try.


Notice this explorer is just a sample for your current case, it might get the different result from your explorer cause I used the GetRoute API I mentioned above.


Hope it helps,


Edgar



explorer.zip (136 KB)

There must be some delay in publish of dll’s ?  
 In daily development builds this is the newest routing build: MapSuiteRoutingFull6.0.113.0DllPackage.zip 
 And in production builds: MapSuiteRoutingFull6.0.0.115DllPackage.zip 
  


Yes the dlls might be published in 5 or 6 hours from now on.