ThinkGeo.com    |     Documentation    |     Premium Support

Hiding features on Feature/InMemoryFeatureLayers

I am looking if there is a  the better methodology to hide (and show) features on layer.


Methodology Steps:


1) Use FeatureLayer:FeatureIdsToExclude list to indicate list of  features to hide (or remove from it to show)


2) Call Refresh method of the Layer'Overlay object or pass in Overlay to Refresh method of the Map 


Is there any faster  methodology when there are 3000+ features and I wan to hide only one or  (n-1) ie 2999?


Note: Feature could be PointShape or LineShape.



Anil, 
  
   Can you explain what you mean by faster?  Do you mean that it takes to long to do the refresh?  Do you mean the collection of items to exclude is hard to clunky to deal with?  Can you give me a scenario?  Can you give me the perfect API you would want to do what you need?  If you provided that we can back into how to accomplish it.  Once I know what you mean exactly I am sure we can do something for you. 
  
 David

Hi David,


Here are answers to your questions.


Q1) Can you explain what you mean by faster?


Anil - I feel that selective hiding (or showing) of features should be instantaneous (Ideally less than 0.05 sec) for better user experience.


Q2) Do you mean that it takes to long to do the refresh?


Anil - Yes. When the number of features increase refreshing takes time. It typically takes 1-2 seconds when I have 1000+ points and a typical human eye can see it drawing when invoking Refresh on the overlay!!! 


Q3) Do you mean the collection of items to exclude is hard to clunky to deal with? Can you give me a scenario?


Anil ->No.


Q4) Can you give me the perfect API you would want to do what you need? If you provided that we can back into how to accomplish it. Once I know what you mean exactly I am sure we can do something for you.


Anil ->Later.


Regards,


Anil






 



Anil, 
  
   I think I understand your issue now.  I want to verify though that you are using the InMemoryFeatureLayer.  The reason I ask is that the if this is a ShapeFileFeatureLayer the fix or adjustment might be different.  I also want to verify that if you are using the InMemeoryFeatureLayer and you add the features through the InternalFeatures collection that you are calling the BuildIndex method once you add all of your feature and before you display the layer.  The BuildIndex builds an R-Tree spatial index to speed up retrieving the related records in the bounding box.  We will look at the internals of the exclusion collection and see what we find. 
  
 David

Hi David,


I am using InMemoryFeatureLayer.


I used BuildIndex() and it does speed up queries.


I ran into some problems for which I had opened a support ticket 2 days ago.


Regards,


Anil



Anil, 
  
   I will see where the ticket is and see if I can help.  We have had allot of tickets lately so we are a little behind.  We usually get caught up quickly though. 
  
 David

Hi Anil, 
  
 I think this ticket is fixed. Please confirm with us that if you still has the issue. 
  
 Thanks, 
 Howard