[OpenLayers-Dev] bbox strategy and zooming

Christopher Schmidt crschmidt at metacarta.com
Thu Nov 13 15:59:09 EST 2008


On Thu, Nov 13, 2008 at 01:52:02PM -0700, Tim Schaub wrote:
> Hey-
> 
> Eric Lemoine wrote:
> > Thanks for putting this patch together Tim.
> > 
> > Initially Chris wanted that the bbox strategy behave aggressively on
> > zoom in, but, as an optimization, only if the number of features in
> > the layer is not lower than the maxfeatures value set in the protocol.
> 
> Ok, I think by "not lower than the maxfeatures" you mean equal to the limit.
> 
> So, you (or Chris) wants to request new features when zooming in if 
> layer.features == some limit?

Well, to be honest, I was adding more smarts to it because I thought
that perhaps you would object to something as simple as the resolutino
changing :) But yeah, I was imagining that if you had only 3 pizza
joints, that you already had them all (as you zoomed in) and that it
would not matter beyond that point if you talked to the server more. 

> I assume you also would like the same behavior when zooming out, right? 
>   If you start zoomed in and you see the top 10 pizza joints, when you 
> zoom out, you want that top 10 list refreshed (note this behavior is not 
> assumed on something like google maps, but I can see why you'd want to 
> make it an option).

Right. Google Maps doesn't do *any* view-based refresh, afaik, so I'm
not sure it's a very useful comparison :)

> That sounds like a pretty simple strategy.  Register for zoomend, check 
> if layer.features == limit and call layer.refesh({force: true}).

That seems reasonable; I guess I didn't really know if that would work
as you went through other strategies, but it seems sane. 

> I don't see why this has to be strictly coupled with the bbox strategy. 

Agreed.

> - A valid point may be raised here that it is weird that some strategies 
> would call protocol.read and others would call layer.refresh.  This is 
> weird.  We should probably have the layer loop through all strategies 
> calling something common.  Strategies would have a chance to modify some 
> context object (adding a limit param or a bbox filter or whatever). 
> Finally this context would get sent to protocol.read.  Deserves more 
> discussion anyway.

Yeah, I actually thought that this was the 'filter' list/array:
essentially, perhaps strategies should be adding protocol neutral
request-controls into a shared space, then at the end of the strategy
list, pass it off to the protocol.

Regards,
-- 
Christopher Schmidt
MetaCarta



More information about the Dev mailing list