Opened 3 years ago

Last modified 3 years ago

#2841 new defect

SELECTFEATURES (v4.0.0) shows no result when querying different geometries

Reported by: gBecker Owned by:
Priority: medium Milestone:
Component: Web API Version: 3.1.0
Severity: trivial Keywords:
Cc: External ID:

Description

I use a Postgres/Postgis view for labeling map objects. This view has a geometry column that is either a point geometry or a linestring geometry. To merge the different geometries from the original table into the view, I use the COALESCE command:

COALESCE (l.point, l.line) AS geom

If I display this view in the AjaxViewer (preview via Maestro), then both geometry types are displayed correctly as you can see in the picture (please ignore the bad labeling of the line):

When I try to display the geometries in OpenLayers using the "SELECTFEATURES" method, nothing is displayed because the request does not return any result:

REQUEST:

http://localhost/mapguide4.0//mapagent/mapagent.fcgi?
OPERATION=SELECTFEATURES&
VERSION=4.0.0&
USERNAME=Anonymous&
LOCALE=en&
CLIENTAGENT=OpenLayers&
RESOURCEID=Library://Labels.FeatureSource&
CLASSNAME=public:mg_labels&
FORMAT=application/json&
CLEAN=1&
PRECISION=11&
FILTER=geom%20INTERSECTS%20GeomFromText(%27POLYGON((486475.17294845433%205781448.278972937,%20486475.17294845433%205781602.9279312715,%20486712.6364901211%205781602.9279312715,%20486712.6364901211%205781448.278972937,%20486475.17294845433%205781448.278972937))%27)%20AND%20thema%20=%20%27Lagebezeichnungen%27%20AND%20size%20%3C%206%20&
PROPERTIES=drehwinkel_grad%09horizontal%09size%09gruen%09blau%09vertikal%09rot%09text%09ogc_fid%09%09geom

RESULT:

{"type": "FeatureCollection", "features": []}

I then changed the view as follows so that it only contains one geometry type:

l.line AS geom

I then reset the FeatureSource so that the changed schema is used. Now the above request gives a correct result but of course only with the line geometries:

{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "LineString", "coordinates": [[486603.93199999997, 5781511.19900000002],[486607.52000000002, 5781525.0839999998],[486608.01899999997, 5781527.61699999962],[486610.81, 5781550.62299999967]]}, "properties": {"drehwinkel_grad": 0,"horizontal": "Left","size": 4,"gruen": 0,"blau": 0,"vertikal": "Baseline","rot": 0,"text": "Bromberger Straße","ogc_fid": 2013401}},{ "type": "Feature", "geometry": { "type": "LineString", "coordinates": [[486603.93199999997, 5781511.19900000002],[486607.52000000002, 5781525.0839999998],[486608.01899999997, 5781527.61699999962],[486610.81, 5781550.62299999967]]}, "properties": {"drehwinkel_grad": 0,"horizontal": "Left","size": 4,"gruen": 0,"blau": 0,"vertikal": "Baseline","rot": 0,"text": "Bromberger Straße","ogc_fid": 34677}}]}

Then I changed the line back to

COALESCE (l.point, l.line) AS geom

and without resetting the FeatureSource, execute the request again and get the result that I originally wanted: point and line geometries together:

{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [486571.36200000002, 5781561.3200000003]}, "properties": {"drehwinkel_grad": 5.03328526119755,"horizontal": "Left","size": 4,"gruen": 0,"blau": 0,"vertikal": "Baseline","rot": 0,"text": "Kösliner Straße","ogc_fid": 2010507}},{ "type": "Feature", "geometry": { "type": "LineString", "coordinates": [[486603.93199999997,  ....

It seems that the problem has something to do with the loaded schema. As I said before, everything is displayed correctly when called via the Ajax viewer, but not when you use the "SELECTFEATURES" method.

And it also has something to do with the spatial filter in the request. If I remove the spatial filter from the query, I get both geometry types returned.

Change History (1)

comment:1 by gBecker, 3 years ago

Unfortunatly, adding a pincture isn't possible at the moment

Note: See TracTickets for help on using tickets.