我无法使CQL参数IN工作

时间:2014-10-13 13:19:17

标签: postgresql cql geoserver wms

在我的URL中使用CQL IN运算符时,我得不到任何结果。如果我使用 CQL_FILTER = id = 229539 ,则网址正常。我真的需要指定一个列表,所以我试图使用CQL IN运算符,没有运气。我尝试了 CQL_FILTER = id IN(229539) CQL_FILTER = id IN('229539'),两者都不起作用 - 为什么?

2 个答案:

答案 0 :(得分:0)

CQL

id IN ('229539')

实际上应该没问题,我们有这样的疑问,他们确实有效。

您可以采取哪些措施进行问题排查:

  • 确保网址编码正确。也许某些引号或括号被错误解释。
  • 确保查询中没有任何其他内容与您的查询进行交互。
  • 确保您不要求两层或更多层。
  • 打开并查看GeoServer日志。我无法为您提供确切的指针,但可以打开详细日志记录,您将看到如何处理查询(最多SQL)。这可能会给出很好的提示。

如果没有任何帮助,请发布您的元数据(WFS GetCapabilities)以及您尝试过的确切网址。

您可能还想ask here

答案 1 :(得分:0)

问题不在于CQL。 CQL是正确的。问题是用于请求的视图的定义。

CREATE OR REPLACE VIEW data.yellowgreen AS 
  SELECT 
    markblok.id AS id,
    temp_kvadrats.value,
    st_intersection(markblok.geom, temp_kvadrats.geom) AS geom,
    temp_kvadrats.session_id
FROM data.temp_kvadrats
  JOIN data.markblok ON st_intersects(markblok.geom, temp_kvadrats.geom);

CQL仅适用于' markblok.id AS id ',而不仅仅适用于' markblok.id ',尽管列中显示的视图名称列表<两种情况下都是强> id 。