Verschwindende Punktfunktionen in Geoserver mithilfe von WMS

10

Ich habe ein Shapefile mit ungefähr 6.500 Punkten weltweit, das ich mit Geoserver 2.2.1 mithilfe von WMS bereitstellen möchte. Alles war anscheinend in Ordnung, bis ich eine Filterfunktion in meiner Client-Anwendung implementiert habe, die eine Broschüre verwendet. Beim Anhängen eines CQL_FILTER (Attributfilter, nicht räumlich) an die WMS-Abfrage habe ich beim Verkleinern fehlende Funktionen festgestellt. Wenn ich zurückzoomte, tauchten sie manchmal wieder auf, aber nicht immer. Siehe das Bild unten -

Nebeneinander Vergleich

In der Zoomstufe links wird Atlanta nicht angezeigt. Wenn ich hineinzoome, ist es. Manchmal wird jedoch nicht einmal der Punkt in Tampa in der Zoomstufe links angezeigt. Wenn ich 3 weitere Ebenen verkleinere, werden überhaupt keine Punkte angezeigt. Ich bin mir nicht sicher, ob das Problem der Parameter CQL_FILTER ist, da es bei 6.500 Punkten schwierig ist, einige fehlende Punkte auf globaler Ebene zu bemerken, aber der spezielle Filter, den ich hier als Beispiel zeige, filtert auf nur 3 Features herunter und wann 1 bis 3 von ihnen fehlen je nach Zoomstufe, was besonders auffällt.

Ich kann dasselbe Verhalten in der Geoserver-eigenen Layer-Vorschau mithilfe des CQL-Filters in den erweiterten Kartenoptionen wiederherstellen, daher bin ich mir ziemlich sicher, dass es nicht meine Client-Anwendung ist.

Für meine eigenen Schritte beim Debuggen dieses Problems habe ich versucht, die Standarddatei "Points style / sld" zu verwenden, um mein eigenes Layer-Styling auszuschließen. Ich habe das gesamte mir bekannte Caching deaktiviert. Ich habe zweimal überprüft, ob meine Projektionen korrekt sind. Ich habe das Shapefile in ArcGIS 10 mit WGS_1984_Web_Mercator_Auxiliary_Sphere als Projektion erstellt und die Ebene in Geoserver auf EPSG: 3857 festgelegt, was meiner Meinung nach äquivalent ist. Ich habe auch ein Upgrade von Geoserver 2.2 auf 2.2.1 durchgeführt und hatte in beiden Fällen das gleiche Problem. Ich habe auch die räumliche Indexdatei des Geoservers (.qix) gelöscht und neu erstellen lassen, da ich in Arc ähnliche Probleme mit beschädigten räumlichen Indizes gesehen habe, aber das hat offensichtlich auch nicht funktioniert.

Hier ist ein Schnappschuss aus der Geoserver-eigenen Ebenenvorschau mit aktiviertem CQL-Filter, der in denselben Bereich wie oben gezeigt gezoomt wurde. Der rote Kreis ist ungefähr dort, wo ich einen anderen Punkt sehen sollte (Atlanta).

Openlayers Beispiel

Ich habe versucht, jede andere Einstellung zu optimieren, die mir einfällt, habe aber kein Glück. Ich habe auch die Geoserver-Protokolle nach oben und unten durchgesehen und die ausführliche Protokollierung aktiviert und sehe keine Fehler / Ausnahmen. Ich sehe auch keine schlechten Anfragen in den Entwicklertools von Chrome.

Wenn mir wichtige Informationen fehlen, gebe ich an, was ich kann, aber dies ist eine interne / nicht öffentliche Anwendung.

MWrenn
quelle
1
Das Offensichtliche ausschließen: Haben Sie zufällig skalierungsabhängige Stile? (dh ein Punkt wird nur zwischen bestimmten Skalen angezeigt)
Unicoletti
1
Können Sie überprüfen, ob die Werte in VENUE_TYPE gültig / konsistent sind? Die inkonsistenten Ergebnisse, die Sie sehen, können darauf zurückzuführen sein, dass Features in einer anderen Reihenfolge zurückgegeben werden (aufgrund geringfügiger Unterschiede in der bbox) und eines davon in irgendeiner Weise "schlecht" ist, was dazu führt, dass das Rendern gestoppt wird, bevor es Atlanta erreicht. Es könnte ratsam sein, den Export Ihrer Daten in ein anderes Format zu testen und dann 1) alles zu überprüfen, was wie erwartet verschoben wurde, und dann 2) Ihren Filter / Render erneut zu testen
Tomfumb
1
@unicoletti Auf der im Screenshot angezeigten Ebene gibt es Skalierungsabhängigkeiten, aber ich sehe dasselbe Ergebnis, wenn ich den von Geoserver bereitgestellten Standard-Punktstil verwende, der keine Skalierungsabhängigkeiten aufweist. Ich sehe genau dieselben Punkte, die auf denselben Skalierungen verschwinden .
MWrenn
1
@tomfumb Ich habe mir die Werte in der Spalte VENUE_TYPE angesehen und sie sind alle englisch alphanumerisch, mit Ausnahme eines gelegentlichen Schrägstrichs '/' oder kaufmännisches Und '&'. Ich werde die Aufzeichnungen mit den Schrägstrichen und dem kaufmännischen Und herausnehmen und sehen, ob das einen Unterschied macht. Nebenbei bemerkt, die DBF dieses Shapefiles ist in UTF-8 codiert, das ich auch in Geoserver festgelegt habe. Könnte das einen Unterschied machen?
MWrenn
4
@MWrenn Ich bin mir nicht sicher, ob ich keine Antwort versuchen soll, aber das Exportieren der Daten in ein anderes Format sollte helfen, festzustellen, ob der aktuelle Speicher / das aktuelle Format das Problem ist. Versuchen Sie möglicherweise, Ihr Shp in ArcMap oder QGIS zu öffnen, den Bereich auf die bbox Ihres Beispiels zu beschränken, und überprüfen Sie dann die Attribute der enthaltenen Features. Enthalten diese Sonderzeichen, die möglicherweise von der Codierung betroffen sind?
Tomfumb

Antworten:

1

Die "Lösung", die ich implementiert habe, bestand darin, die Shapefiles mit shp2pqsql in eine PostGIS-Datenbank zu importieren, wodurch die Funktionen zum Verschwinden von Punkten bei Verwendung eines CQL-Filters behoben wurden. Ich kann jetzt genau dieselbe CQL-Filteranforderung stellen und jetzt alle Punkte in allen Zoomstufen anzeigen. Ich musste dann einige automatisierte Prozesse optimieren, um die PostGIS-Datenbank anstelle von Shapefiles zu aktualisieren, aber es dauerte nur einige Stunden.

Ich bin mir immer noch nicht sicher, warum Grundpunkte verschwinden. Ich habe verschiedene Projektionen und Shapefile-Writer (QGis, ESRI, Shapefile.py oder pyShape oder so) jedes Mal mit genau demselben Ergebnis ausprobiert. Ich bin kein Experte für Geoserver, daher zögere ich, es als Fehler zu bezeichnen, und es ist wahrscheinlich etwas Besonderes für mein Setup, aber ich konnte auf zwei verschiedenen Instanzen reproduzieren, die auf zwei verschiedenen Computern von Geoserver mit 2.2 und 2.2 ausgeführt werden. 1, beide unter Windows (One XP, unter Server 2003).

Ich bin auch nicht in der Lage, die Quell-Shapefiles zu veröffentlichen, daher denke ich, dass die Grundursache ein Rätsel bleiben wird.

MWrenn
quelle