ThinkGeo.com    |     Documentation    |     Premium Support

World MapKit SDK

I just purchased MapSuite 4.5 with the routing extensions and the World MapKit and I'm a bit disappointed that It looks like I need to do quite a bit of work to get the routing to work with the maps. I was hoping all the files would be there since I'm buying the data from you. What is the best way to create a routing index for the World Map Kit for the US roads?  Do you have RTG files for each state that will work for the World Map Kit to save me many days of index creation?  If you do I would greatly appreciate being able to get them from you it since I tried creating an RTG file based on the largest SHP file for california and it took 8 hours and then the routing didn't seem to work?  Even if you have the files, Do you have sample code for creating the files from the World MapKit?  Looking at other posts it looks like you can either create the index from a single shape file or you can create the routing file from different shape files in the hierarchy but I don't see any code showing how to do it or handle it.  any help would greatly be appreciated.


Thanks.



We are interested in the outcome of this conversation as well.

German and AI, 
  
 The main reason we didn’t add Routing support to World Map Kit is the data. The main data (US data) of World Map Kit is from TIGER(census.gov/geo/www/tiger/), it is a pretty comprehensive data set collected by US government but one thing not good is it doesn’t support routing well. For example, it doesn’t tell a road is one-way or dual-way; it’s not correct for some cloverleaf interchange; between counties or states, sometimes one road will be cut to 2 pieces although they look connected……. It’s more for displaying rather than routing. We in fact used to spend many resources on the TIGER-based Entire US Routing but failed, sorry for the inconvenience but there are too many data issues we can hardly work around.   
  
 Using TIGER data, the farther between the start point and end point, the more possible to see a data related issue in the routing result. That also means the routing result makes more sense for a smaller area. So could you let us know your scenario in detail maybe we can find a workaround? Also if you want to generate the routing data anyway we could write a tool for you. 
  
 Thanks, 
  
 Johnny

Hi Johnny, this is very disappointing and I don't believe you make this clear on your website.  You sell data and a routing engine so you imply that they can be used together.  I even made several inquiries to you guys before buying everything and was told I could do it.  If you look at my ticket in the support area (#3214) you will find that I was told I could do it before I bought everything which was quite expensive, the mapping engine, the worl map kit, the routing engine, the geoencoder.  I just spent a lot of money that is flushed down the toilet if I can't route since that's the only reason I bought this. 


My needs are that I have a workforce that every day needs to go out and route from 10-100 homes. 50% of the time the homes are within a single zipcode but ther's a significant amount of work that encomposses several zipcodes.  It's always an area that can be driven in a single work day. We are currently working in California but will soon be nationwide and I need to put a solution in place. We currently use MapPoint on every desktop which is quite espensive but works wonderfully but most of our workers are contractors and so we thought we could provide the service instead of having each person purchase MapPoint. Please tell me what you suggest and any help or tools that you can provide would be VERY appreciated.  Feel free to contact me directly by phone by looking up my account information of sending me an email at garciag@bitopia.com and I'll give you my office number.  I would like to come up with a solution sooner rather than later for this and if we can't I need to see if I can get a refund based on the fact that I was told I could do it and I would need to go out and purchase another solution.


Thanks.



Can you please send me any code/tools you have that would help me in trying to use routing engine against the World Map Kit?


Thanks.



Hi German, 
  
 Sorry for the inconvenience, we have created a simple tool to simulate the scenario using CA data, but we still needs lots of tests to make sure it applies to your scenario. Can you wait some more time and we will give you the reply as soon as possible. 
  
 Thanks, 
 Johnny 


Most definately.  While I’m under some time constraints, it’s makes no sense for me to move forward without your help so I will wait.   
 Thanks, 
 German.

Hi German,


Sorry for the delay. Today, we did the test with Alaska State because it is much smaller than other states.  Here are the steps about how to get a better route with WorkMapKit data.
1.       Disassemble all of raw WorldMapKit road data for “AK” using “MapSuite RoutingExplorer” to get a better shapefile which doesn’t include the MultiLineShape that has more than one line. Please see the picture as following.
         
2.       Combine all the road shapefiles for “AK” into one shapefile for creating routing index file using the tool attached. You can do the changes to the tool based on your requirements. The images shown as following.
         
3.       Build routing index for the combined shapefile for “AK” roads using “MapSuite Routing Explorer”.
4.       Route.
As far as we did, the routing extension works fine and get the desired route in several zipcode, but a worse route in a very big district. Now, we are still building the index file for “CA” state, and we will give you the answers as soon as possible.
Thanks,
Johnny
 

CombineShapeFiles.zip (10.7 KB)

Can't find "Genarate Routable Shape File" option. Where can I get your version of Routing Explorer?


 



Thanks, I'll give that a try but my routing explorer doesn't have the option "Generate Routable Shape File". Is that in a new build? How do I get it or the source for it? and BTW thanks for all your work in helping me with this.



 


Hi Kaori,
Sorry that I forgot to tell that I’m using the latest public package for test. It is released days before and can be downloaded from our website, or please contact the support@thinkgeo.com .
Today, we did the test with “CA” data. To simply the scenario, we cleared all the extra information in .dbf file except “Id” and think that all the roads have the same priority. To get a better and reasonable route in reality, we strongly recommend you to give different parameters to different routes based on your scenario with the help of BuildingRoutingDataEvent , in other words, we need to write the our own code to build the index file instead of using RoutingExplorer. The demo code “BuildingRoutingData.cs” can be got from installation sample. Here is the image that we got, and please contact support@thinkgeo.com to ask for our test data if you would like.


The test result proves that it can find the route in a satisfied time, but I’m not sure whether it fits your requirements. Any questions during the development, please let us know and we will try best to help you as soon as possible.
Thanks,
Johnny
 
 

That looks great.  I'm going to give it a try and let you know.


Thanks for you work on this.

German



German, 
 You are so welcome, we will wait for your test result and any questions please let us know. 
 Thanks, 
 Johnny 


 Hi Jonny,


 
I'm having difficulty to make the fastest path and I think I need your help.
 
I see ProcessWMKData (combining shape files) program drops all columns other than the index, so I left "CFCC" column while combining the shape files, and tried to generate an rtg file using the BuildingRoutingData sample program in VB Desktop HowDoISamples. But it eventually throws an exception "Your index is out of bound" and never be able to finish the process.
 
Then I tried to using CombineShapeFiles program instead of ProcessWMKData, so that it would keep all columns, and the result was the same.
 
What I noticed was that I could successfully create an rtg file with fastest path using the BuildingRoutingData sample code with the MapSuitRouting 4.0. Now I changed it into 4.5, with the same sample code and the same shape files, now it throws the exception.
 
Bottom line is that would you help me out by providing a sample code that will work with 4.5? If the sample should work with 4.5 as it is, what do you think I am missing?
 
Here's the exception that I see.

 



Hi Kaori,


The error is caused by the reason that the new API builds the index format based on the routable shapefile generated during building index file instead of original shapefile. Please try the attached tools, one for combining shapefile, and another one is used to build fastest routing index file based on WMK. Please pay attention to the comments “Todo” in “BuildFastestIndexForWMK” project and do the changes based on your requirements.
Thanks,
Johnny

ProcessWMKData.zip (22.8 KB)

Hi kaori, 
  
 Please make sure login the helpdesk.thinkgeo.com with your own account to download the updated Routing DLL packags, version 4.5.51.0 or higher, we found an issue which has been fixed during doing the tools. 
  
 Thanks, 
 Johnny

Thanks for your help, Johnny, 
  
 I’ll give a try with those tools.

Kaori, Please remember to update the DLLs to version 4.5.51.0 or higher.  
  
 Thanks, 
 Johnny

 Yes, I've been using 4.5.51.0 for MapSuitRouting, thanks.


 
It successfully has routed for some stopping points, but still is having issue with throwing an error "The shape you provided does not pass our simple validation" during calculating the routing when I included certain stopping points, which are I'm sure within the shape and were actually fine with 4.0.
 
I'm trying narrowing out the problem now,, and will let you know.

Hi Kaori, 
 The exception “The shape you provided does not pass our simple validation” is thrown by the Core assembly, which means that there is a LineShape without vertexes. Can you let us know which state/shapefile that you are using for test? Maybe we can do it following your steps to get the same exception. 
 Thanks, 
 Johnny