[mapserver-dev] [mapserver-users] Detect featureless areas
Stephen Woodbridge
woodbri at swoodbridge.com
Fri Oct 5 17:59:36 PDT 2012
On 10/5/2012 6:31 PM, Ian Walberg wrote:
> Hello list,
>
> We need to be able to detect when there are no features on a map and
> limit the extent so that the user does not zoom in any further if there
> is nothing to see.
>
> This could be for example no labels or no vector data for the given extent.
>
> We are using php mapscript .
>
> Any ideas how we can do this?
Well on the one hand why do you care? Does this cause a problem in some
way? If the user wants to do something useless and stupid, then let him.
I would limit zooming based on scale or resolution.
The above would be my approach, but if you really want to do this, one
way to do this would be to setup the mapfile to do a query and then
query the layers you want to check for features based on the bbox of the
view and then check if you got any hits. But this can be potentially
much more expensive then drawing nothing in the case above.
It has been a while since I have used mapscript, but their might be a
return code that tells you if the layer drew anything (if not you might
want to write a ticket to add that.
You proposed method has the problem of scale dependencies, in the you
might have a situation where a some scale there is very little turned on
and it you stop zooming there, then you can never get to the scale where
other things get turned on. What you draw on any given scale is not
predictive of what you might draw at some other scale.
Think of a small island that is turned off because it is very small
until you get zoomed in. If you pan over the ocean to the vicinity of
the island and it is off, you would prevent zooming in to the point that
the it got turned on.
I would keep is simple, I think it will work better in the long run.
-Steve W
More information about the mapserver-dev
mailing list