ThinkGeo.com    |     Documentation    |     Premium Support

Query Features Within the Current Map Extent

Hi,



I am loading MsSql2008FeatureLayer on the map. There are thousand features in each layer. There is a big performance hit if I do this:


MsSql2008FeatureLayer layer = GetLayer(decimal.Parse(id));
layer.Open();
IEnumerable<Feature> features = layer.QueryTools.GetAllFeatures(ReturningColumnsType.AllColumns);

I notice there is a QuertyTools method 
GetFeaturesInsideBoundingBox and by passing the rectangle shape (I assume it can be the current extent), then the query will improve:

IEnumerable<Feature> features = layer.QueryTools.GetFeaturesInsideBoundingBox(RectangleShape boundingBox, ReturningColumnsType.AllColumns);


How do I do this via MapActionFilter method? As in when the map changed its extent on the client side, and the user clicked a button it will execute a map ajaxCallAction and would pass the current extent.

Your help is greatly appreciated.

Regards,
Benito

Hi Benito,


 


Thanks for your post. You are right about “layer.QueryTools.GetFeaturesInsideBoundingBox(RectangleShape boundingBox, ReturningColumnsType.AllColumns);”,
it do will imporove the query speed. And about “MapActionFilter method” attached is the sample code, would you please try it? 
If you have any more questions, please feel free to let us know.

 


Hope it helps


 


Summer



11299.txt (1.39 KB)

Hi Summer, 
  
 Thanks a lot for the response. I’ve tried your codes and they work nicely. I’m getting a huge performance improvement now, plus I’m moving the map rendering to a service layer. This will improve further more. 
  
 Many thanks, 
 Benito 
  


Hi Benito, 
  
 Gload to know that it works as you expected,if any other questions, please feel free to let us know. 
  
 Best Regards, 
 Johnny