ThinkGeo.com    |     Documentation    |     Premium Support

Example of how to put Routing index in SQL Database

Is there an example of how to build a Routing Index and put it into an SQL database, then extract it out of the database?


Also, can you have multiple Routing Indexes at the same time?  For example a Routing Index for Utah, Idaho and Wyoming and then build a route the covers these multiple areas?  So if my stop points extend beyond one state, and I want to build a layer for each state, and Optimize it with an index?


bob



Hi Bob, 
  
 For your first question, I think you can save the index file to the database as a stream, and at the client side, rebuild the index file for using. 
  
 For your second question, sorry to tell you we don’t support that. 
  
 Regards, 
  
 Edgar

Has anyone ever tried to build a routing index for the entire USA?  Would it overtax the system?  99% of our users will be local/regional and won’t need to plan a trip the covers the entire country, but I hate to have to display a message telling them they can’t. 
  
 Do you have any additional suggestions along this line? 
  
 bob

Hi Bob,  
  
 The Routing Edition can provide routing for the entire USA but I would be prepared to wait awhile for a result at the US is a very large country and has a lot of roads. If you can wait several seconds (perhaps 10 or more seconds) for a result the Routing Edition can provide you a result, but I would try and set my expectations to match the task

OK.  I had another thought.  Most likely users may need to route to adjacent states.  So what if I built muliple indexes based on smaller "Regions" and stored them in a SQL database, and downloaded them as needed. 
  
 Also, is there an example of setting up an index from a stream? 
  
 bob

Bob, 



Something like this could definitely work but I am not sure there will be any performance increase in finding the route over having one large RTG file. 

For example lets say you are routing between Dallas and Oklahoma City. If you have a regional index you will use the Region that has Texas and Oklahoma roads. The routing engine is only going to search through roads that could possibly connect Dallas and OKC, the same as if it had access to one large national index. 



So while I think your idea to split these regionally is good for minimizing individual RTG file sizes (perhaps for transport or to minimize the data footprint), I would not expect a large decrease in the route method return time for the route between OKC and Dallas by simply splitting up the data into regional indexes.


The real change is routing result return time is the distance and number of options that the control has as it attempts to find the route. For example the difference between a route going between NYC and San Francisco versus a route that goes between San Francisco and San Diego. The former will take much more time to determine than the latter.



We don't have a specific example demonstrating the load of an RTG file from a stream but the RtgRoutingSource object does have a StreamLoading Event that you could setup an EventHandler for. You might check out the DesktopEdition Sample Applications - Data Providers - LoadAMapFromStreams example as a basis.



Has anyone ever been able to create an entire US Routing Index file?  It seems the index generator is restricted for a reason.  I was also told the index could only be 2gig max.  How large would the US Routing index file be? Would it exceed this limit?  It seems to take several hours to create an index for a single state.  How long would it take for the US?  Why is this something ThinkGeo can’t provide as a download for users of the Routing. Heck we pay enough for the module.

Hi Dave, 
  
 Just like Ryan mentioned before, it could for building routing index file of the whole US, but may runs into a performance issue when doing the route. We have some guys work on this improvement now.  
  
 We did have the experience of building the entire US Routing Index file even for the entire North America, totally the size is 17 GB for US and Maxico, it takes around 3~5 days.  
  
 If we would like to build the Routing Index file for whole US, I guess we need to write some extra code besides the ones in the RoutingIndexGenerator, because there should be more accurate and practical. 
  
 As for the question “Why is this something ThinkGeo can’t provide as a download for users of the Routing?”, do you mean the ready-to-use US routing index file? It’s on the way now, it may be for all guys in future. 
  
 Thanks,