[mapserver-commits] r9108 - trunk/mapserver
svn at osgeo.org
svn at osgeo.org
Wed Jun 17 15:14:55 EDT 2009
Author: pramsey
Date: 2009-06-17 15:14:55 -0400 (Wed, 17 Jun 2009)
New Revision: 9108
Modified:
trunk/mapserver/HISTORY.TXT
trunk/mapserver/mapdraw.c
Log:
Add logging in layer visibility tests to help users find why layers don't draw (#3054)
Modified: trunk/mapserver/HISTORY.TXT
===================================================================
--- trunk/mapserver/HISTORY.TXT 2009-06-17 12:59:11 UTC (rev 9107)
+++ trunk/mapserver/HISTORY.TXT 2009-06-17 19:14:55 UTC (rev 9108)
@@ -14,6 +14,8 @@
Current Version (SVN trunk):
----------------------------
+- Add logging in layer visibility tests to help users find why layers don't draw (#3054)
+
- include PNG libs first (#3046)
- merge graphics branch: RFC54 implementation, cairo rendering (png, svg, pdf),
Modified: trunk/mapserver/mapdraw.c
===================================================================
--- trunk/mapserver/mapdraw.c 2009-06-17 12:59:11 UTC (rev 9107)
+++ trunk/mapserver/mapdraw.c 2009-06-17 19:14:55 UTC (rev 9108)
@@ -634,15 +634,30 @@
/* Only return MS_FALSE if it is definitely false. Sometimes it will return MS_UNKNOWN, which we
** consider true, for this use case (it might be visible, try and draw it, see what happens). */
- if ( msExtentsOverlap(map, layer) == MS_FALSE ) return(MS_FALSE);
+ if ( msExtentsOverlap(map, layer) == MS_FALSE ) {
+ if( layer->debug >= MS_DEBUGLEVEL_V ) {
+ msDebug("msLayerIsVisible(): Skipping layer (%s) because LAYER.EXTENT does not intersect MAP.EXTENT\n", layer->name);
+ }
+ return(MS_FALSE);
+ }
if(msEvalContext(map, layer, layer->requires) == MS_FALSE) return(MS_FALSE);
if(map->scaledenom > 0) {
/* layer scale boundaries should be checked first */
- if((layer->maxscaledenom > 0) && (map->scaledenom > layer->maxscaledenom)) return(MS_FALSE);
- if((layer->minscaledenom > 0) && (map->scaledenom <= layer->minscaledenom)) return(MS_FALSE);
+ if((layer->maxscaledenom > 0) && (map->scaledenom > layer->maxscaledenom)) {
+ if( layer->debug >= MS_DEBUGLEVEL_V ) {
+ msDebug("msLayerIsVisible(): Skipping layer (%s) because LAYER.MAXSCALE is too small for this MAP scale\n", layer->name);
+ }
+ return(MS_FALSE);
+ }
+ if((layer->minscaledenom > 0) && (map->scaledenom <= layer->minscaledenom)) {
+ if( layer->debug >= MS_DEBUGLEVEL_V ) {
+ msDebug("msLayerIsVisible(): Skipping layer (%s) because LAYER.MAXSCALE is too large for this MAP scale\n", layer->name);
+ }
+ return(MS_FALSE);
+ }
/* now check class scale boundaries (all layers *must* pass these tests) */
if(layer->numclasses > 0) {
@@ -654,14 +669,29 @@
break; /* can't skip this class (or layer for that matter) */
}
- if(i == layer->numclasses) return(MS_FALSE);
+ if(i == layer->numclasses) {
+ if( layer->debug >= MS_DEBUGLEVEL_V ) {
+ msDebug("msLayerIsVisible(): Skipping layer (%s) because no CLASS in the layer is in-scale for this MAP scale\n", layer->name);
+ }
+ return(MS_FALSE);
+ }
}
}
if (layer->maxscaledenom <= 0 && layer->minscaledenom <= 0) {
- if((layer->maxgeowidth > 0) && ((map->extent.maxx - map->extent.minx) > layer->maxgeowidth)) return(MS_FALSE);
- if((layer->mingeowidth > 0) && ((map->extent.maxx - map->extent.minx) < layer->mingeowidth)) return(MS_FALSE);
+ if((layer->maxgeowidth > 0) && ((map->extent.maxx - map->extent.minx) > layer->maxgeowidth)) {
+ if( layer->debug >= MS_DEBUGLEVEL_V ) {
+ msDebug("msLayerIsVisible(): Skipping layer (%s) because LAYER width is much smaller than map width\n", layer->name);
+ }
+ return(MS_FALSE);
+ }
+ if((layer->mingeowidth > 0) && ((map->extent.maxx - map->extent.minx) < layer->mingeowidth)) {
+ if( layer->debug >= MS_DEBUGLEVEL_V ) {
+ msDebug("msLayerIsVisible(): Skipping layer (%s) because LAYER width is much larger than map width\n", layer->name);
+ }
+ return(MS_FALSE);
+ }
}
return MS_TRUE; /* All tests passed. Layer is visible. */
More information about the mapserver-commits
mailing list