我正在使用Opeonlayers 3.18 + GeoServer。我可以制作一个ogc过滤器来比较字段和值。如何比较两个字段?
下面的代码显示了我正在寻找的内容:
var f = ol.format.ogc.filter.greaterThan('Field1', 100); // this works nicely
var f = ol.format.ogc.filter.greaterThan('Field1', 'Field2'); // this doesn't work等效的CQL过滤器是:'Field1 > Field2‘
问候
发布于 2016-08-28 21:12:25
这种过滤应该是有效的。我要指出的是,许多数据库可能没有以最佳方式执行该过滤器的方法,因此,对这种过滤器的处理可能不正确。
首先要检查的是GeoServer日志是否有任何其他信息。对于大多数请求,都有日志消息提供请求的所有详细信息(包括过滤器)。
如果OL3发出了一个无意义的请求,那么首先应该出现某种解析错误。如果数据存储在处理请求时出现问题,您可能会看到异常。
为了进一步提供帮助,您使用的是哪个版本的GeoServer和哪个数据存储区?另外,日志中是否还有其他信息?
更新:基于下面的评论,我查看了Open Layer 3源代码。如果您查看here,就会发现OL3将第一个参数视为properyName,而将第二个参数视为文字。在项目的GitHub页面上填写错误/特性请求可能是值得的。
https://stackoverflow.com/questions/39182145
复制相似问题