Ticket #2307 (closed defect: fixed)

Opened 6 years ago

Last modified 5 years ago

WFS spatial filter "touches" with a BBOX in lat/long returned null

Reported by: nsavard Owned by: assefa
Priority: normal Milestone: 5.2 release
Component: WFS Server Version: unspecified
Severity: normal Keywords:
Cc:

Description

When I issue a GetFeature? request with a "touches" spatial filter and a bbox in lat/long the server returns null. I tested with 5.0-rc2 on Linux. The feature returned should be "Quebec, Iles de la Madeleine (AREA: 4833029.500)". See msautotest.

QUERY_STRING="map=[MAPFILE]&SERVICE=WFS&VERSION=1.0.0& REQUEST=GetFeature?&TYPENAME=province&FILTER=<Filter><Touches> <PropertyName?>Geometry</PropertyName><gml:Polygon> <gml:outerBoundaryIs><gml:LinearRing> <gml:coordinates>-61.719829698475976,47.269592918433993 -61.732190995311512,47.25507337571689 -61.72,47.24 -61.71,47.26</gml:coordinates></gml:LinearRing> </gml:outerBoundaryIs></gml:Polygon></Touches></Filter>"

Change History

Changed 5 years ago by assefa

  • owner changed from mapserverbugs to assefa
  • status changed from new to assigned
  • milestone set to 5.2 release

updated files in msautotest in r7709. Works locally on windows.

Norm if you got a minute, can you run the msautotest

Changed 5 years ago by nsavard

This is fixed. I noticed that you changed the linearing for a point. Does it should work for a polygone as well?

Changed 5 years ago by assefa

  • status changed from assigned to closed
  • resolution set to fixed

Thanks. Closing.

I have tested for point and for line, polygon.

Line I used :FILTER=<Filter><Touches><PropertyName?>Geometry</PropertyName><gml:LineString><gml:coordinates>-61.748897101358850,47.258393824294672 -61.750963952824037,47.275550067023204</gml:coordinates></gml:LineString></Touches></Filter>

Touches with a my polygon <Filter><Touches><PropertyName?>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>-61.748897101358850,47.258393824294672 -61.750963952824037,47.275550067023204 -61.748897101358850,47.238393824294672 -61.750963952824037,47.238393824294672 -61.748897101358850,47.258393824294672</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Touches></Filter>

Note that this is the definition of Touches (Simple Feature Specfications section 2.1.13.3 : The Touches relation between two geometries a and b applies to the A/A, L/L, L/A, P/A and P/L groups of

relationships but not to the P/P group. It is defined as: a.Touches(b) <=> (I(a) interct (b) = empty) or (a intersct b) noot eq empty.

Basically: touches for polygon implies that the 2 polygons should not intersect (they can share a point or a segment)

Note: See TracTickets for help on using tickets.