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)

#4126-ms542.patch (2.9 KB ) - added by mko 12 years ago.
#4126-ms61dev.patch (4.6 KB ) - added by mko 12 years ago.
enhances #3043 to work for annotation layers

Download all attachments as: .zip

Change History (11)

comment:1 by sdlime, 12 years ago

Component: MapServer C LibraryWMS Server
Owner: changed from sdlime to mapserverbugs

by mko, 12 years ago

Attachment: #4126-ms542.patch added

comment:2 by mko, 12 years ago

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.

comment:3 by mko, 12 years ago

Didn't realize #3043 before. Attached patch for MapServer 6 extends #3043 to work for annotation layers too. It does read extent + srs from metadata.

by mko, 12 years ago

Attachment: #4126-ms61dev.patch added

enhances #3043 to work for annotation layers

comment:4 by schpidi, 12 years ago

Cc: schpidi added

Thanks, added the patches to the INSPIRE sandbox with r12906.

comment:5 by schpidi, 12 years ago

Owner: changed from mapserverbugs to schpidi
Status: newassigned

comment:6 by tbonfort, 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 tbonfort, 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 tbonfort, 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 schpidi, 12 years ago

Resolution: invalid
Status: assignedclosed

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.

Note: See TracTickets for help on using tickets.