使用WMS在Geoserver中消失点要素


10

我有一个shapefile,其中包含大约6,500个点,我正在尝试使用WMS与Geoserver 2.2.1一起使用。直到我在使用传单的客户端应用程序上实现了过滤功能之前,一切都很好。当我在WMS查询中附加CQL_FILTER(属性过滤器,而不是空间过滤器)时,我注意到缩小时缺少功能。当我放大时,它们有时会重新出现,但并非总是如此。见下图-

并排比较

在左侧的缩放级别,不显示亚特兰大。当我放大时,它是。但是,有时甚至在左侧的缩放级别上也不会显示坦帕中的点。如果再缩小3个级别,将不会显示任何点。我不确定问题是CQL_FILTER参数,因为有6,500个点很难在全球范围内注意到一些缺失点,但是我在这里作为示例展示的特定过滤器仅过滤了3个特征,何时根据缩放级别,其中有1至3个缺失,这一点特别明显。

我可以使用高级地图选项中的CQL过滤器在geoserver自己的图层预览中重新创建相同的行为,因此,我可以肯定它不是我的客户端应用程序。

至于调试此问题的步骤,我尝试使用默认的Points样式/ sld文件排除自己的图层样式。我已经关闭了所有我知道的缓存。我再次检查了我的投影是否正确-我在WGS_1984_Web_Mercator_Auxiliary_Sphere中使用WGS_1984_Web_Mercator_Auxiliary_Sphere作为投影创建了shapefile,并将图层设置为geoserver中的EPSG:3857,我认为这是等效的。我还从geoserver 2.2升级到2.2.1,并且在这两个版本中都有相同的问题。我还删除了geoserver的空间索引文件(.qix)并重新创建它,因为我在Arc中看到了类似的问题,即空间索引已损坏,但显然也不起作用。

这是Geoserver自己的图层预览的快照,其中启用了CQL过滤器,并放大到了如上所示的相同区域。红色圆圈大约是我应该看到的另一点(亚特兰大)的位置。

Openlayers示例

我尝试过调整所有我能想到的其他设置,但是没有运气。我还查看了地理服务器日志,并启用了详细日志记录,没有看到任何错误/异常。在chrome的开发人员工具中,我也看不到任何不良要求。

如果我缺少任何重要信息,我将尽力提供,但这是一个内部/非公共应用程序。


1
排除明显的问题:您是否有依赖于比例尺的样式?(即,仅在特定比例尺之间显示一个点)
unicoletti

1
您可以验证VENUE_TYPE中的值有效/一致吗?您看到的不一致结果可能是由于要素以不同的顺序返回的(由于bbox的细微差别),其中一个在某种程度上是“不良”的,导致渲染在到达亚特兰大之前就停止了。测试将数据导出为其他格式可能是明智的,然后1)检查是否按预期移动了所有内容,然后2)重新测试过滤器/渲染
tomfumb 2012年

1
@unicoletti在屏幕快照中显示的图层上,存在比例依赖关系,但是当我使用Geoserver提供的默认“点”样式时却看到了相同的结果,该样式没有比例依赖关系,我看到了相同比例下完全相同的点消失了。
MWrenn

1
@tomfumb我查看了VENUE_TYPE列中的值,它们都是英文字母数字,除了偶尔的正斜杠'/'或&符'&'。我将用斜杠和“&”符号删除记录,看看是否有区别。附带说明一下,此shapefile的DBF是用我也在geoserver中设置的UTF-8编码的。会有所作为吗?
MWrenn

4
@MWrenn我不确定是否不会尝试答案,但是将数据导出为另一种格式应有助于确定当前存储/格式是否有问题。也许尝试在ArcMap或QGIS中打开Shp,将区域限制在示例的bbox中,然后检查所包含特征的属性-这些特征是否包括可能受编码影响的特殊字符?
tomfumb 2012年

Answers:


1

我实现的“解决方案”是使用shp2pqsql将shapefile导入postGIS数据库,该数据库解决了使用CQL过滤器时消失的点特征的问题。我可以提出完全相同的CQL过滤器请求,现在可以查看所有缩放级别的所有点。然后,我不得不调整一些自动化过程来更新postGIS数据库而不是shapefile,但是只花了几个小时。

我仍然不确定点要素消失的根本原因。我每次尝试使用不同的投影和shapefile编写器(QGis,ESRI,shapefile.py或pyShape等)时都具有相同的精确结果。我不是geoserver的专家,所以我不愿意将其称为Bug,这可能是我的设置所特有的,但是我能够在运行2.2和2.2的geoserver的两台不同计算机上运行的两个不同实例上重现。 1,两者都在Windows上(一个Xp,在Server 2003上)。

我也无法发布源shapefile,因此我想根本原因仍然是个谜。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.