ThinkGeo.com    |     Blog    |     Wiki    |     Support

Creating Routable Road ShapeFiles

Hello, I have a road shapefile created from GIS Editor. Somehow I receive a source code for generating a routable shapefiles. I already change the sourceShapeFilePath and routableShapeFilePath where the new routable shapefile will overwrite. But then an unexpected error occur. I will send you the part of the code where the error occur. Please I need your help. Thank You!




1.RtgRoutingSource.GeneratingRoutableShapeFile += new EventHandler<GeneratingRoutableShapeFileRoutingSourceEventArgs>(RtgRoutingSource_GeneratingRoutableShapeFile);
2. 
3.//error occur here saying "NullReferenceExeption was Unhandled"
4.RtgRoutingSource.GenerateRoutableShapeFile(sourceShapeFilePath, routableShapeFilePath, OverwriteMode.Overwrite);
5. 
6.btnGenerateRoutableShapeFile.Enabled = true;
7.MessageBox.Show("Routable Shape File has been Build! You can Start building routing index with it now.");


Hi Joseph, 
  
 If you get the exception when you build routable shape file, please sent your shape file to us. 
  
 Our developer need that for reproduce your problem and try fixing it. 
  
 Regards, 
  
 Don

Thank You!! Here I attached the road ShapeFiles.

Road_ShapeFiles.zip (50 KB)

Hi Joseph, 
  
 Thanks for your data, and we found that there is a problem do exsisting in the data, it is the 8th record in your shape file, it doesn’t have wkb. So, would you please amend your data first, then try it again? 
  
 Thanks, 
  
 Summer

Hi, sorry but I don’t know what is “wkb” and about the 8th record in my shape file. Could you explain to me more about it and how could I use it? Thank You!

I search about the wkb in the ThinkGeo wiki but still I cant get what it do and what its purpose. I really need your help on this! Thank You!

Hi Joseph, 
  
 Thanks for your query, simply to say, wkb is the geometry information in byte[] format. The problem with your shape file is that some record(not just the 8th) in your shapefile has not geometry information, following code is used to regenerate the shapefile: 
  
 ShapeFileFeatureSource source = new ShapeFileFeatureSource(@"…\SampleData\kalibo_road.shp", ShapeFileReadWriteMode.ReadOnly); 
 source.Open(); 
 Collection<Feature> features = source.GetAllFeatures(ReturningColumnsType.AllColumns); 
 Collection<FeatureSourceColumn> columns = source.GetColumns(); 
 Collection<DbfColumn> dbfColumns = new Collection<DbfColumn>(); 
 foreach (var item in columns) 
 { 
 DbfColumn column = new DbfColumn(item.ColumnName, DbfColumnType.Character, 20, 0); 
 dbfColumns.Add(column); 
 } 
 ShapeFileFeatureLayer.CreateShapeFile(source.GetShapeFileType(), @"…\SampleData\a.shp", dbfColumns); 
 ShapeFileFeatureLayer fixedLayer = new ShapeFileFeatureLayer(@"…\SampleData\a.shp"); 
 fixedLayer.Open(); 
 fixedLayer.FeatureSource.BeginTransaction(); 
 foreach (Feature feature in features) 
 { 
 fixedLayer.FeatureSource.AddFeature(feature); 
 } 
 fixedLayer.FeatureSource.CommitTransaction(); 
 fixedLayer.Close(); 
 source.Close(); 
  
 with the new shapefile, now it should work. 
  
 if you have any more question , please feel free to let us know. 
  
 Best Regards 
  
 Summer

What is the Namespace for Collection() and should I just run it? Thank You!

Hello, I have already tried different name space for Collection() but I still don’t know what name space should I use, would you send me right name space and should I just run the codes after I compiled it?. Need Help please! Thank You!

Hi Joseph, 
  
 Thanks for your query. The namespace for collection is "using System.Collections.ObjectModel;". 
  
 Hope it helps 
  
 Summer

Hi, thank you for the response but when I tried to route it using routing explorer what happens is that it can only route straight line and no route appear when comes in turning lines. Why this happens?


Hi Joseph,

I get the routable shp file from your original shp file. I find there are not any cross points on two crossing line, such as following diagram:




So, the routable line should be straight line. 


And attahced “The topology structure of Data source supported.doc”  is for your reference.


Thanks,



Summer



Would you tell me what to do in this circumstances?

Ok, I already understand what you mean. Thank You!

Hi Joseph, 
  
 You are welcome, if you have any questions please let me know. 
  
 Thanks 
  
 Summer