geoserver - 当应用过滤器查询基于 BBOX 获取多边形区域内的要素时返回不需要的结果

标签 geoserver

我有两个图层,一个是点图层,另一个是多边形图层。这两个图层都使用 WMS 服务从 GeoServer 显示在 map 上。我在多边形内绘制一些点,其他点仅在 map 上绘制。

现在我想获取点特征详细信息,这些详细信息可用于特定的多边形区域,为此,我通过使用 EPSG:4326 向 Geoserver 发出 WFS 请求,应用了带有多边形特征 BBOX 的 CQL 过滤查询。

过滤查询:

http://localhost:8080/geoserver/cite/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=cite:filterquertyTest&CQL_FILTER=BBOX(the_geom%2C70.136719%2C10.833306%2C87.890625%2C32.842674)&SRS=EPSG%3A4326&WIDTH=950&HEIGHT=400&maxFeatures=50&outputFormat=application%2Fjson

但在这里我遇到了诸如多边形之外的近点也可以由地理服务器作为功能详细信息返回的问题。

请参阅image它返回totalFeatures Count 4,但在多边形层内部只有3个点。

enter image description here

因此,任何精确获取 Point 的解决方案都可以在多边形区域内使用。

提前致谢。

最佳答案

GeoServer 所提供的正是您所要求的,即落入由两个角 70.136719,10.833306 87.890625,32.842674 定义的框内的所有点。

如果您只需要多边形内的 3 个点,则需要使用within 过滤器。

&CQL_FILTER=within(the_geom,POLYGON((70.136719 10.833306,....)))

关于geoserver - 当应用过滤器查询基于 BBOX 获取多边形区域内的要素时返回不需要的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47230295/

相关文章:

java - 使用maven构建geoserver(monitor-hibernate)

sql-server - Geoserver 无法识别空间列

java - 从geoserver获取 map 到argis sdk android

postgresql - 地理服务器问题

tomcat - Geoserver,有多少并发用户

postgresql - geoserver wfs-t 是只读异常

javascript - 如何使用 Vuelayers 与 GeoServer 提供的 WMS 切片图层进行交互?

javascript - Geoserver - 使用 DWITHIN 过滤点

azure - 无法在 Kartoza Geoserver、Azure 应用服务中使用 GeoPackage 作为矢量数据存储

css - 如何使用 Geoserver 的 CSS 样式向标签添加文字前缀