ThinkGeo.com    |     Documentation    |     Premium Support

BuildIndex() best practices?

Hi Thinkgeo,


I am using InMemoryFeatureLayer to represent point feature object. (270+ in number).


To improve query performance I want to use BuildIndex. What is the best practice to use BuildIndex call?


Do I need to invoke after adding each feature or I can call once all features are added?


Regards,


Anil



Hi Anil, 
  
 We recommend you call BuildIndex after all features are added. You should ensure the index has been built before each query. 
  
 Thanks, 
 Ivan

Hi Ivan, 
  
 Thanks. Is there threshold limit on  number of features after which I will start seeing gain in performance on BuildIndex(). For less than 200 features I don’t see much again and in some cases I see degradation. 
  
 Regards, 
 Anil

Hi Anil, 
  
 We don’t have a threshold number for that. 
  
 Our suggestions is, if your features number is big and most of time you only view parts of them you can build index for improve speed. 
  
 The index file will make it faster to find pending rendered features. If you don’t have a index file, each pan or zoom you need loop all the features one by one. 
  
 But when your features are not so many, directly loop will be faster than query by arithmetic sometimes. 
  
 Regards, 
  
 Don

Hi  Don, 
  
 Thanks. 
  
 Is it ok to use BuildIndex on layer that has both PointShapes and a LineShape?  
  
 Is it necessary to call BuildIndex() before each Query even if there is no change in Feature data.  
  
 Regards, 
 Anil

Anil, 
  
 Is it ok to use BuildIndex on layer that has both PointShapes and a LineShape?  
  
 I think you don’t need worry about the data type when you call BuildIndex. 
  
 Is it necessary to call BuildIndex() before each Query even if there is no change in Feature data.  
  
 No, if your data didn’t change, call one time is OK when your application is still runing. 
  
 Regards, 
  
 Don