ThinkGeo.com    |     Documentation    |     Premium Support

OGR-Feature Layer - Feature ID's not persistent

Hello,


I display Map-Info (*.mif)  data with OGR-Feature-Layer. I select a feature on the map and store its ID to a variable. Later I try to access this feature again with GetFeatureById() method. If call GetFeatureById() method the GetAllFeaturesCore() method in my  own implementation of FeatureSource-Class is called.


This is the same behaviour as if I work with shape files. But if I work with shapefiles the ID's of the returned  features with GetAllFeaturesCore() method is allways the same. If I work with OGR-Feature-Layer the Feature ID's returned with GetAllFeaturesCore() are allways different.


This means my code to access the feature with its ID did not work.


Any ideas?


Thomas


 


 



Thomas,


Thanks for your post and questions.
 
I am sorry to say that I could not agree with you completely or I am missing or misunderstanding something here.
 
When we called the GetFeatureById for the ShapeFileFeatureLayer, we will not call the GetAllFeaturesCore which is time consuming to read out all the features from the shape file. While it will have the implementations for GetFeaturesByIdsCore which is using the .shx indexed file to locate the target record very efficiently.
 
For the OgrFeatureLayer, we also do the implementation of GetFeaturesByIdsCore, in which the filter condition is passed into the GetFeatures interfaces provided by the FDO library.
 
Any my mistakes or more questions just feel free to let me know.
 
Thanks.
 
Yale

Ok Yale, 
  
 thanks for information. As I mentioned above I use my custom feature source class inherited from ‘FeatureSource’ and did not overwrite the GetFeatureByIdCore() method. As a result of missing implementation the GetAllFeaturesCore() method is called.  I am going to implement GetFeatureByIdCore() to fix this behaviour and improve the performance. 
  
 Thanks Thomas

Thomas,


Thanks for your posts and feedback. I am sorry for my bad understanding and I am glad to see the progress you are making.
 
Any more questions just feel free to let me know.
 
Thanks.
 
Yale