有人可以解释在geoserver中使用CQL_Filter

时间:2016-07-03 10:32:41

标签: javascript cql geoserver

我正在尝试查询大地水准面内的每个状态,因此使用WITHIN但它似乎无法正常工作。你能给我一个很好的例子吗?对于CQL过滤器,文档似乎不是很好。 我正在使用以下

"CQL_FILTER=WITHIN(the_geom,buffer( querySingle('"+
this.geoopts.lastLayer+"','the_geom','CODE=" +
this.geoopts.lastId + "') ,0.0001) )"

1 个答案:

答案 0 :(得分:0)

看起来您可能正在尝试使用'查询层'扩展(1)。你有安装吗?

您的CQL看起来确实合理(有关详细信息,请查看下面的链接2)。

作为注释,缓冲区功能直接作用于几何体。因此,唯一可以使用的单位是来自第一层坐标参照系(CRS)的单位。

如果该图层的CRS是经度/纬度的CRS,则设置。距离0.0001约为10米。

考虑到这一切,如果A)没有安装查询层插件,或者B)第一层的CRS以米为单位,那么事情很容易出错。

  1. 查询层扩展程序[http://docs.geoserver.org/stable/en/user/extensions/querylayer/index.html]的文档。

  2. 关于(E)CQL [http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html#geometric-filters]中的空间谓词的更多信息。