ThinkGeo.com    |     Documentation    |     Premium Support

GeneratingRoutableShapeFileRoutingSourceEvent and BuildingRoutingDataRtgRoutingSourceEvent

Hi,



I am wondering how often the events mentioned in this topic’s subject are fired. I build a routable ShapeFile and generate the routing index. Because this takes some time, I’d like to show a progress bar to inform the user about the status of the building process. I tried the code I found in thinkgeo.com/forums/MapSuite…fault.aspx , but when I use  originalFeatureSource.GetCount(); (while originalFeatureSource is the original ShapeFile when building the routable Shapefile, when generating the routing index it is the routable ShapeFile)

to set the progress bar’s maximum and increment the progress bar’s value every time GeneratingRoutableShapeFileRoutingSourceEvent resp.  BuildingRoutingDataRtgRoutingSourceEvent is received, I can see that, when generating the routable ShapeFile, GetCount() is much smaller than the frequency of GeneratingRoutableShapeFileRoutingSourceEvent and the same is true for BuildingRoutingDataRtgRoutingSourceEvent when generating the routing index. In the api documentation I can only read that those events are fired “many times”. Maybe you could help me out on this.



Another thing I am working on is rotating the routing Layer together with my world layers. This works fine using FeatureLayer.FeatureSource.Projection with my world Layers. In the routing Layer, I have no such member. I also tried rotating the start and end point as well as the route line shape manually, but I suppose there is a much more comfortable and elegant way to do so.



Thanks in advance!

HI Hanna

Maybe I think what you are afraid of , GeneratingRoutableShapeFile event is fired when each feature of OrignalFeatureSource is analyzed, that’s why we can set the progressBar’ s length as its ccount. The BuildingRoutingData event is similar to GeneratingRoutableShapeFile.


About routing layer projection, I think current route line shapes will be get from current RoutingLayer, then add these line shapes to InmemoryFeatureLayer, and set this InmemoryFeatureLayer's projection.



Thanks,

Don



Thanks Don, 
  
 I unfortunately don’t get it: 
 When I set the progress bar’s maximum to the features’ count, the progress bar after some time is “filled” although the generation process takes about two more minutes. To me it seems that the event occurs more than one time per feature in the feature source. Is that possible?

Hi Hanna, 
  
 Thanks for comments here, I think we made a mistake before here, actually, just as you mentioned, the GeneratingRoutableShapeFile event is fired when a new analysed feature is going to be written into the new routable shape file, the event is provided here to allow the users to do some changes to the new feature before writing it to the final featureSource.  
  
 The correct length of progress bar should be the count of the new routable shape file, instead of the count of original shape file, but the problem is that it’s  impossible for us to know the count of new routable shape file, here I guess we just can take an evaluated length for ProgressBar based on the count of the old shape file.  
  
 A workaround is that we can do some geoprocessing here to make sure a feature is processed, but it will slow down the generating performance a lot. Sorry for the inconvenience. 
  
 Thanks, 
 Johnny

Ok Johnny, 
  
 that’s all I wanted to know here :) Thanks for the answer. 


HI Hanna, 
  
 Thanks for let us know your problem.  
  
 Any question please let us know. 
  
 Regards, 
  
 Don