当前位置: 首页 > 知识库问答 >
问题:

Geoserver 2.11.2CQL_FILTERgetFeature请求

戴博
2023-03-14

我试图做一个getFeature请求使用CQL_FILTER。过滤器有两个组件空间过滤器定义为内部(几何,POLYGON((144.9085 -37.8540,144.9085 -37.7756,145.0129 -37.7756,145.0129 -37.8540,144.9085 -37.8540)))加上属性过滤器组件persons_usually_resident

http://13.55.5.169:8008/geoserver/abs/wfs?REQUEST=GetFeature

共有2个答案

卜方伟
2023-03-14

谢谢伊恩,但恐怕我已经测试过了。

我知道空间数据是正确的,因为我使用了具有相同几何形状的BBOXCQL_FILTER,它可以很好地返回正确的特征数据编号,而不需要编码。这也验证了我们正在寻找正确的层和几何形状。这也返回了与空间过滤器应该返回的相同数量的特征——由于内部与BBOX有点不同,所以会有细微的差异。

http://13.55.5.169:8008/geoserver/abs/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.0.0&TYPENAME=2016MBmeshblocks&OUTPUTFORMAT=application/json&CQL_FILTER=BBOX(geometry,144.7434,-37.9707,145.1608,-37.6572)%20AND%20persons_usually_resident%20%3E%20400

我还检查了WKT多边形的语法((144.7434-37.9707144.7434-37.6572145.1608-37.6572145.1608-37.9707144.7434-37.9707))https://arthur-e.github.io/Wicket/sandbox-gmaps3.html所以我相信这是正确的。

此外,我还尝试了OGC过滤器,但没有成功。

http://13.55.5.169:8008/geoserver/abs/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.1.0&TYPENAME=2016MBmeshblocks&OUTPUTFORMAT=application/json&FILTER=<Filter><And><PropertyIsGreaterThan><PropertyName>persons_usually_resident</PropertyName><Literal>400</Literal></PropertyIsGreaterThan><Within><PropertyName>geometry</PropertyName><Polygon><outerBoundaryIs><LinearRing><coordinates decimal='.' cs=':' ts=' '>144.7434:-37.9707 144.7434:-37.6572 145.1608:-37.6572 145.1608:-37.9707 144.7434:-37.9707</coordinates></LinearRing></outerBoundaryIs></Polygon></Within></And></Filter>

我需要能够支持OGC或CQL空间过滤器和可变大小的搜索多边形,可以是圆形或用户数字化区域。我可以在Cubewerx WFS服务上实现这一点,但我真的很难使用Geoserver2.11。2.

我能想到的唯一一件事是,我们的地理服务器上的访问控制设置可能设置不正确。你能在那里提出建议吗?

http://13.55.5.169:8008/geoserver/abs/wfs?request=getcapabilities&service=WFS

具体来说...

<fes:Constraint name="ImplementsSpatialFilter">
<ows:NoValues/>
<ows:DefaultValue>FALSE</ows:DefaultValue>
</fes:Constraint>

如果这是一个问题,如何更改此默认约束?

我们也在考虑升级到一个更新版本的geoserver。

再次感谢你的帮助。布拉德......

段哲圣
2023-03-14

您需要对CQL_FILTER参数进行URL编码,例如,这适用于我:

curl -v -G --data-urlencode "CQL_FILTER=Within(geometry,POLYGON((144.9085 -37.8540,144.9085 -37.7756,145.0129 -37.7756,145.0129 -37.8540,144.9085 -37.8540))) AND persons_usually_resident > 400"  \
"http://13.55.5.169:8008/geoserver/abs/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.1.0&TYPENAME=2016MBmeshblocks&srsName=EPSG:4326&OUTPUTFORMAT=application/json&DRAPEID=5445"
 类似资料:
  • 一个应用的请求是用 yii\web\Request 对象来表示的,该对象提供了诸如 请求参数(译者注:通常是GET参数或者POST参数)、HTTP头、cookies等信息。 默认情况下,对于一个给定的请求,你可以通过 request application component 应用组件(yii\web\Request 类的实例) 获得访问相应的请求对象。在本章节,我们将介绍怎样在你的应用中使用这个

  • Wiki ▸ [[API--中文手册]] ▸ [[核心函数]] ▸ 请求 如果你不访问数据那么你就不能可视化它。幸运的是有很多的方法可以把数据放到浏览器中。对于小数据集,你可以硬编码到你的脚本里,或者使用数据属性嵌入到DOM中。对于大数据集,你可以引用外部脚本并定义你的数据为一个全局变量。(JSONP就是一个常见的例子)。最通用的方式是使用XMLHttpRequest, 或说XHR加载数据到浏览器

  • 请求对象(Request) 是完全基于 PSR-7 标准实现的,由 hyperf/http-message 组件提供实现支持。 注意 PSR-7 标准为 请求(Request) 进行了 immutable 机制 的设计,所有以 with 开头的方法的返回值都是一个新对象,不会修改原对象的值 安装 该组件完全独立,适用于任何一个框架项目。 composer require hyperf/http-m

  • 请求对象封装了客户端请求的所有信息。在 HTTP 协议中,这些信息是从客户端发送到服务器请求的 HTTP 头部和消息体。

  • 我有一个具有OAuth2授权的Spring Cloud应用程序: 我添加了这个安全配置: github:https://github.com/rcbandit111/OAuth2/blob/master/src/main/java/org/engine/security/WebSecurityConfig.java 打开Angular应用程序时,出现访问错误: 您知道我需要应用什么配置才能在没有强

  • 有人能帮我吗? 谢谢

  • 本文向大家介绍全面解析iOS中同步请求、异步请求、GET请求、POST请求,包括了全面解析iOS中同步请求、异步请求、GET请求、POST请求的使用技巧和注意事项,需要的朋友参考一下 先给大家分别介绍下iOS中同步请求、异步请求、GET请求、POST所代表的意思,然后在逐一通过实例给大家介绍。 1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进

  • 我已经使用zappa在aws lambda上部署了一个flask应用程序,现在该应用程序在所有endpoint上都运行良好,除了我的主endpoint,当我对其发出post请求时,它返回{“消息”:“endpoint请求超时”} 真的需要一个修复或想法如何克服这个我需要调用分析路线,部署的url是 https://2ixfyfcsik.execute-api.eu-west-2.amazonaws