Skip to content

Commit 10c1508

Browse files
committedFeb 7, 2014
Fix #8584 (WFS requests with FILTER fails against Geoserver)
1 parent 8b8eb56 commit 10c1508

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed
 

‎src/core/qgsogcutils.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616

1717
static const QString GML_NAMESPACE = "http://www.opengis.net/gml";
18+
static const QString OGC_NAMESPACE = "http://www.opengis.net/ogc";
1819

1920
QgsGeometry* QgsOgcUtils::geometryFromGML( const QDomNode& geometryNode )
2021
{
@@ -1879,7 +1880,7 @@ QDomElement QgsOgcUtils::expressionToOgcFilter( const QgsExpression& exp, QDomDo
18791880
if ( exprRootElem.isNull() )
18801881
return QDomElement();
18811882

1882-
QDomElement filterElem = doc.createElement( "ogc:Filter" );
1883+
QDomElement filterElem = doc.createElementNS( OGC_NAMESPACE, "ogc:Filter" );
18831884
filterElem.appendChild( exprRootElem );
18841885
return filterElem;
18851886
}

‎tests/src/core/testqgsogcutils.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -246,19 +246,21 @@ void TestQgsOgcUtils::testExpressionToOgcFilter_data()
246246
QTest::addColumn<QString>( "xmlText" );
247247

248248
QTest::newRow( "=" ) << QString( "NAME = 'New York'" ) << QString(
249-
"<ogc:Filter><ogc:PropertyIsEqualTo>"
249+
"<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
250+
"<ogc:PropertyIsEqualTo>"
250251
"<ogc:PropertyName>NAME</ogc:PropertyName>"
251252
"<ogc:Literal>New York</ogc:Literal>"
252253
"</ogc:PropertyIsEqualTo></ogc:Filter>" );
253254

254255
QTest::newRow( ">" ) << QString( "COUNT > 3" ) << QString(
255-
"<ogc:Filter><ogc:PropertyIsGreaterThan>"
256+
"<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
257+
"<ogc:PropertyIsGreaterThan>"
256258
"<ogc:PropertyName>COUNT</ogc:PropertyName>"
257259
"<ogc:Literal>3</ogc:Literal>"
258260
"</ogc:PropertyIsGreaterThan></ogc:Filter>" );
259261

260262
QTest::newRow( "and+or" ) << QString( "(FIELD1 = 10 OR FIELD1 = 20) AND STATUS = 'VALID'" ) << QString(
261-
"<ogc:Filter>"
263+
"<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
262264
"<ogc:And>"
263265
"<ogc:Or>"
264266
"<ogc:PropertyIsEqualTo>"
@@ -278,14 +280,14 @@ void TestQgsOgcUtils::testExpressionToOgcFilter_data()
278280
"</ogc:Filter>" );
279281

280282
QTest::newRow( "is null" ) << QString( "X IS NULL" ) << QString(
281-
"<ogc:Filter>"
283+
"<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
282284
"<ogc:PropertyIsNull>"
283285
"<ogc:PropertyName>X</ogc:PropertyName>"
284286
"</ogc:PropertyIsNull>"
285287
"</ogc:Filter>" );
286288

287289
QTest::newRow( "is not null" ) << QString( "X IS NOT NULL" ) << QString(
288-
"<ogc:Filter>"
290+
"<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
289291
"<ogc:Not>"
290292
"<ogc:PropertyIsNull>"
291293
"<ogc:PropertyName>X</ogc:PropertyName>"
@@ -294,7 +296,7 @@ void TestQgsOgcUtils::testExpressionToOgcFilter_data()
294296
"</ogc:Filter>" );
295297

296298
QTest::newRow( "in" ) << QString( "A IN (10,20,30)" ) << QString(
297-
"<ogc:Filter>"
299+
"<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
298300
"<ogc:Or>"
299301
"<ogc:PropertyIsEqualTo>"
300302
"<ogc:PropertyName>A</ogc:PropertyName>"
@@ -312,15 +314,15 @@ void TestQgsOgcUtils::testExpressionToOgcFilter_data()
312314
"</ogc:Filter>" );
313315

314316
QTest::newRow( "intersects + wkt" ) << QString( "intersects($geometry, geomFromWKT('POINT (5 6)'))" ) << QString(
315-
"<ogc:Filter>"
317+
"<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
316318
"<ogc:Intersects>"
317319
"<ogc:PropertyName>geometry</ogc:PropertyName>"
318320
"<gml:Point><gml:coordinates cs=\",\" ts=\" \">5,6</gml:coordinates></gml:Point>"
319321
"</ogc:Intersects>"
320322
"</ogc:Filter>" );
321323

322324
QTest::newRow( "contains + gml" ) << QString( "contains($geometry, geomFromGML('<Point><coordinates cs=\",\" ts=\" \">5,6</coordinates></Point>'))" ) << QString(
323-
"<ogc:Filter>"
325+
"<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
324326
"<ogc:Contains>"
325327
"<ogc:PropertyName>geometry</ogc:PropertyName>"
326328
"<Point><coordinates cs=\",\" ts=\" \">5,6</coordinates></Point>"

0 commit comments

Comments
 (0)
Please sign in to comment.