camptocamp / ngeo

Library combining OpenLayers and AngularJS
https://camptocamp.github.io/ngeo/master/examples
MIT License
135 stars 87 forks source link

Layers in mapserver groups can't be queried #1977

Closed ger-benjamin closed 7 years ago

ger-benjamin commented 7 years ago

Layers in a MapServer GROUP can't be queried.

Try with theme: OSM, first-level-group: Group layer: OSM. At least the bank layer should be queried, but nothing is queried. I think (but i'm not comfortable with the ngeo query service) that's because query sources are only based on final layer (like bank) and this layer is not directly on the map.

(You can also try the bank layer directly to see that the query system works on this layer, try it in theme: OSM, first-level-group: OSM function, layer: layer with a very very very very very long name)

https://geomapfish-demo.camptocamp.net/2.1/theme/OSM

ger-benjamin commented 7 years ago

@adube The problem come from here: https://github.com/camptocamp/ngeo/blob/391fe66920a765c6d4c02f24fe9591ea87b55f0f/src/services/query.js#L426-L452

Precisely, at line 447. In my case, the "layerLayers" (existing layer) value is group and the "cfgLayer" (queried source) values are hotel,bank,place_of_worship. Both doesn't match but one is part of the other and must match. (That's a Mapserver group)

I don't understand why we need that item.source.validateLayerParams check. Perhaps we can just removesit. Or should we get the group layer of hotel,bank,place_of_worship. What should I do ?

adube commented 7 years ago

@ger-benjamin This might help: https://github.com/camptocamp/ngeo/blob/master/externs/ngeox.js#L514-L531

Otherwise, you can contact me.

ger-benjamin commented 7 years ago

Thanks adube