Travis,
Welcome to discussion forums, hope you enjoy the learning and sharing here.
This is a bug in GetFeaturesForDrawing method which calls GetFeaturesInsideBoundingBox method by mistake in some case. We will fix it in the next version. Sorry for the inconveniences.
Just wondering why you are overriding GetFeaturesForDrawingCore, as normally you can just override GetFeaturesInsideBoundingBoxCore, which will be called by GetFeaturesForDrawingCore internally by default. Here is a video about how to implement your own DataSource.
gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/16/aft/4769/afv/topic/Default.aspx
In the concrete method we did some additional process before and after calling the Core method, take GetFeaturesForDrawing method as an example.
1. We do the parameter validation checking at entry point to make sure the parameters are not null or invalid.
2. If GeoCache.IsActive property is set to true and the required features can be found in cache, we will use the features from cache directly. Otherwise we will call GetFeaturesForDrawingCore to get features.
3. After get features from GetFeaturesForDrawingCore, we also loop through the TransactionBuffer to see whether need to add or remove some feaures based on the transaction status.
4. We will project all the records before return if this FeatureSource is using projection.
You can see that we did a lot before and after calling the GetFeatureForDrawingCore method, so that the user does not need to consider the cache, projection and transaction status when overriding the Core method. That made people focus on the logic what he wants. Otherwise it is very easy to make mistakes in the entire process.
Thanks,
ThinkGeo Support