Opened 12 years ago
Closed 12 years ago
#4126 closed defect (invalid)
copyright (annotation) layer inside data extent only
Reported by: | mko | Owned by: | schpidi |
---|---|---|---|
Priority: | normal | Milestone: | 6.2 release |
Component: | WMS Server | Version: | unspecified |
Severity: | normal | Keywords: | annotation copyright bbox extent |
Cc: | mko, schpidi |
Description
WMS 1.3.0 (and 1.1 also) requires in 7.3.3.6 BBOX, 3rd paragraph that an empty image is returned if the requested bbox is outside the extent given in the service metadata.
We will need some mechanism which checks the bbox against layer extent before drawing.
Attachments (2)
Change History (11)
comment:1 by , 12 years ago
Component: | MapServer C Library → WMS Server |
---|---|
Owner: | changed from | to
by , 12 years ago
Attachment: | #4126-ms542.patch added |
---|
comment:2 by , 12 years ago
comment:3 by , 12 years ago
by , 12 years ago
Attachment: | #4126-ms61dev.patch added |
---|
enhances #3043 to work for annotation layers
comment:5 by , 12 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:6 by , 12 years ago
Milestone: | → 6.2 release |
---|
The applied patch has some significant impact on rendering performance which imho needs to be sorted out before 6.2 is released. The overhead comes from the call to msOWSGetLayerExtent() in msExtentsOverlap() if the layer has no extents defined, instead of returning MS_UNKNOWN as done previously.
I am also seeing log messages
msProjectRect(): some points failed to reproject, doing internal sampling.
with this change applied.
For reference, on a mapfile with a large number of layers, rendering time has gone from 0.165s to 0.506s.
ps: the discussion in #3585 may also be somewhat related to the issue
comment:7 by , 12 years ago
This change also breaks layers where no projection has been set (i.e. when it is inherited from the mapObj) which is a valid notation. Depending on the extent used, my layers are randomly appearing or disappearing on the output of getmap requests.
I will revert this change for now as it breaks existing mapfiles
comment:8 by , 12 years ago
reverted in r13226
I think that this patch needs some reworking, there should not be any calls to msOWS* functions from mapdraw.c or maputil.c as these functions are supposed to be agnostic of any OGC related features.
comment:9 by , 12 years ago
Resolution: | → invalid |
---|---|
Status: | assigned → closed |
I fully agree and rethinking the ticket I think this can be achieved using the EXTENT directive (see test added with r13280). Thus closing the ticket. Please report if this doesn't solve it for you.
The attached patch does evaluate the request extent against the extent of the layer to be drawn inside msLayerIsVisible(). This feature ca be enabled by setting wms_respect_extent 'true' at the layer metadata. The layer extent can either be read from the data itself or from wms_extent, which is possibly faster. LAYER.PROJECTION or wms_srs need to be set.