Opened 15 years ago

Closed 14 years ago

Last modified 14 years ago

#3097 closed defect (fixed)

SLD with Intersects filter containing multi geometry selects whole dataset

Reported by: bartvde Owned by: assefa
Priority: normal Milestone: 5.6 release
Component: WMS Server Version: 5.2
Severity: normal Keywords:
Cc:

Description

Somehow an SLD with an Intersects selects the whole datasets, instead of the features within the multi polygon.

Testcase to come.

Attachments (1)

ticket3097.zip (136.1 KB ) - added by bartvde 15 years ago.
testcase containg explanation document, shapefile, MAP file and example SLD files

Download all attachments as: .zip

Change History (7)

by bartvde, 15 years ago

Attachment: ticket3097.zip added

testcase containg explanation document, shapefile, MAP file and example SLD files

comment:1 by bartvde, 15 years ago

Summary: SLD with Intersects filter contain multi geometry selects whole datasetSLD with Intersects filter containing multi geometry selects whole dataset

comment:2 by assefa, 14 years ago

Milestone: 6.0 release

comment:3 by assefa, 14 years ago

Milestone: 6.0 release5.6 release
Resolution: fixed
Status: newclosed

committed in trunk r9547.

committed msautotest r9548 (test is in wms_sld.map: wms_get_map_multi_polygon_filter.png)

comment:4 by bartvde, 14 years ago

Tested, works fine.

comment:5 by bartvde, 14 years ago

Index: ../geoservices/lib/GeoServices/widgets/SelectByOtherLayer.js
===================================================================
--- ../geoservices/lib/GeoServices/widgets/SelectByOtherLayer.js        (revision 2370)
+++ ../geoservices/lib/GeoServices/widgets/SelectByOtherLayer.js        (working copy)
@@ -153,30 +153,7 @@
         var features = gml.read(response.responseXML || response.responseText);
         if (features && features.length == 1) {
             var geometry = features[0].geometry;
-            // we need a workaround since Mapserver cannot do intersection
-            // with a multi geometry
-            if (geometry instanceof OpenLayers.Geometry.MultiPolygon ||
-              geometry instanceof OpenLayers.Geometry.MultiLineString ||
-              geometry instanceof OpenLayers.Geometry.MultiPoint) {
-                var gtMsg;
-                if (geometry instanceof OpenLayers.Geometry.MultiPolygon) {
-                    gtMsg = 'polygoon';
-                } else if (geometry instanceof OpenLayers.Geometry.MultiLineString) {
-                    gtMsg = 'lijn';
-                } else if (geometry instanceof OpenLayers.Geometry.MultiPoint) {
-                   gtMsg = 'punt';
-                }
-
-                Ext.MessageBox.show({icon: Ext.MessageBox.WARNING, title:
-                    OpenLayers.i18n("warningTitle"),
-                    msg: OpenLayers.i18n("multiGeometryWarning", {'geometrytype': gtMsg}),
-                    buttons: Ext.MessageBox.OK});
-
-                this.boundingFeature = geometry.components[0];
-                this.boundingFeature.projection = geometry.projection;
-            } else {
-                this.boundingFeature = geometry;
-            }
+            this.boundingFeature = geometry;
         }
         GeoServices.OGCUtil.getAttributes(this.layer, this, this.performSelection);
     },

comment:6 by bartvde, 14 years ago

Please ignore my last post, sorry, wrong Trac :-)

Note: See TracTickets for help on using tickets.