ThinkGeo.com    |     Documentation    |     Premium Support

Can I use MultipleShapeFileFeatureSource to GenerateRoutingData?

Hello,


 


I want to use MultipleShapeFileFeature source to generate an .rtg file, but I keep getting exceptions from within the ThingGeoCode (or so I assume).


First of all I am trying to at least build the index, but that's the start of my troubles ...


Shortly after the build index process starts I get NullReferenceException exception. This is the code I am using.


 MultipleShapeFileFeatureLayer.BuildIndex(btnShapeFileDirectory.Text + "\\*.shp",BuildIndexMode.Rebuild);



The exception I get:


   at ThinkGeo.MapSuite.Core.MultipleShapeFileFeatureSource.x1828a82e6169af83(String xefc974f06883e2bb, String xd5a2fa95f22ed2ff, String x60e05096fa9ec711, String x6b63dad20630d011)


   at ThinkGeo.MapSuite.Core.MultipleShapeFileFeatureSource.BuildIndex(String multipleShapeFilePattern, String indexFilePattern, BuildIndexMode buildIndexMode)


   at ThinkGeo.MapSuite.Core.MultipleShapeFileFeatureSource.BuildIndex(String multipleShapeFilePattern, BuildIndexMode buildIndexMode)


   at ThinkGeo.MapSuite.Core.MultipleShapeFileFeatureLayer.BuildIndex(String multipleShapeFilePattern, BuildIndexMode buildIndexMode)



My data has GeographyUnit.Meter and Distance.Unit meter.


Any advice ?


 



Tomas, 
  
 Can you send all of your shape files to us, I cannot reproduce your problem correctly, I used the same code as you for building all shape files in a folder, the buildindex mode is "Rebuild". Also I checked the history for the necessary code and there are not any changes for the build index ability, so I guessed the problem is from your shape files, if your dataset is large please contact ThinkGeo Support to send them, 
  
 Thanks, 
  
 Scott,

Scott I tried to upload a 60MB files here, but to no avail.

Tomas, 
  
 The discussion forum has limitation for uploading file that only allows the size of file which is less than 500k. 
  
 So you probably still need to contact ThinkGeo Support by emailing support@thinkgeo.com and let him create a FTP folder for you. 
  
 Thanks, 
 James

Was this ever resolved? Can this feature source be used for routing, service area calculation, and/or TSP?

Hi Jonathan, 
  
 Welcome to Map Suite discuss forums. 
  
 This feature source is available for scenario you mentioned.  
  
 Would you please have a try? And any question please feel free to let us know. 
  
 Thanks 


I can’t seem to get this to work.  Building a RTG based on MultipleShapeFileFeatureSource always fails for me.  It doesn’t seem to matter if I use Tiger or OSM.  Geometries are snapped, cleaned, plannerized, and indexed.  Also, I can build rtg files just fine for individual areas.



Files are too large to upload (~254 mb zipped).



Code Example:

string[] routeShapes = Directory.GetFiles(routeablePath, “*_route.shp”);

MultipleShapeFileFeatureSource multipleShapeFileFeatureSource = new MultipleShapeFileFeatureSource(routeShapes);

RtgRoutingSource.GenerateRoutingData(@“D:\workspace\data\OSM\routeable\FastestPath.rtg”, multipleShapeFileFeatureSource, BuildRoutingDataMode.Rebuild, GeographyUnit.DecimalDegree, DistanceUnit.Mile);
            
Resulting Error:

System.IndexOutOfRangeException was unhandled
  HResult=-2146233080
  Message=Index was outside the bounds of the array.
  Source=MapSuiteCore
  StackTrace:
       at ThinkGeo.MapSuite.Core.MultipleShapeFileFeatureSource.GetFeaturesByIdsCore(IEnumerable`1 ids, IEnumerable`1 returningColumnNames)
       at ThinkGeo.MapSuite.Core.FeatureSource.GetFeatureById(String id, IEnumerable`1 returningColumnNames)
       at ThinkGeo.MapSuite.Core.FeatureSource.GetFeatureById(String id, ReturningColumnsType returningColumnNamesType)
       at vBM=.RBQ=.aRQ=(String bRQ=, FeatureSource bhQ=, BuildRoutingDataMode bxQ=, GeographyUnit cBQ=, DistanceUnit cRQ=)
       at ThinkGeo.MapSuite.Routing.RtgRoutingSource.GenerateRoutingData(String rtgFilePathName, FeatureSource featureSource, BuildRoutingDataMode buildRoutingDataMode, GeographyUnit geographyUnit, DistanceUnit distanceUnit)
       at RouteFileBuilder.Form1.BuildRouteFile()
       at RouteFileBuilder.Form1.BtnGenClick(Object sender, EventArgs e)
       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 RouteFileBuilder.Program.Main()
       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: 




Hi Jonathan, 
  
 Sorry that we give you an incorrect reply before, actually the MultipleShapeFileFeatureSource is not supported for building Routing index file, would you please let me know what scenario you would like to implement, then I may provide a workaround for you? 
  
 Thanks, 
 Johnny

Well, I’m trying to implement a nationwide routing engine.  Primarily for Service Area analysis, but would like flexibility to accommodate other routing operations down the road.

Hi Jonathan, 
  
 The ShapeFileFeatureSource is just taken into account when generating the routing index, thus if we would like to MutipleShapeFileFeatureSource, it’s possible, but need some changes in Routing extention, I have entered it into our internal issue tracking system, we will focus on it if the high priority taks are completed. If it’s urgent for you, please contact sales@thinkgeo.com for a priority change, it may need few days. 
  
 As you mentioned, you would like to do a United State national wide route, do you mean any route between cities, such as from New York to Dallas or like that? If yes, I guess it may run into performance issue, anyway, please let us know the details of your requirements, we can have a check. 
  
 Regards, 
  
 Don