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.
Unfortunatly, adding a pincture isn't possible at the moment