我无法使 CQL 参数 IN 工作
Posted
技术标签:
【中文标题】我无法使 CQL 参数 IN 工作【英文标题】:I cannot make the CQL parameter IN work 【发布时间】:2014-10-13 13:19:17 【问题描述】:在我的 URL 中使用 CQL IN 运算符时,我没有得到任何结果。如果我使用 CQL_FILTER=id=229539 该 URL 工作正常。我真的需要指定一个列表,所以我尝试使用 CQL IN 运算符,但没有运气。我尝试了 CQL_FILTER=id IN (229539) 和 CQL_FILTER=id IN ('229539'),都不起作用 - 为什么?
【问题讨论】:
可能更适合gis.stackexchange.com 我必须用双引号将名称 id 括起来,它起作用了。我认为id
是 GeoServer 中的保留名称,因此您可以通过这种方式解决问题。另请参阅gis.stackexchange.com/q/373005/9518。
【参考方案1】:
CQL
id IN ('229539')
实际上应该没问题,我们有这样的查询并且它们确实有效。
您可以做些什么来排除故障:
确保 URL 编码正确。可能某些引号或括号被错误地解释了。 确保查询中没有其他任何内容与您的查询交互。 确保您没有请求两个或更多层。 打开并查看 GeoServer 日志。我不能给你确切的指针,但可以打开详细日志记录,你会看到查询是如何处理的(直到 SQL)。这可能会提供很好的提示。如果没有任何帮助,请发布您的元数据 (WFS GetCapabilities) 和您正在尝试的确切 URL。
您可能还想ask here。
【讨论】:
【参考方案2】:问题不在于 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。
【讨论】:
以上是关于我无法使 CQL 参数 IN 工作的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Sklearn 和 Keras Wrappers 使 pipeline.fit() 工作