Ich habe ein sehr kniffliges Problem: Ich habe eine Postgis 2.0-Datenbank, die als Datenspeicher für Geoserver 2.1.3 verwendet wird
Ich habe eine Tabelle mit einer Geometriespalte (benannte Form) mit der SRID 4326
Ich habe eine Ansicht wie diese erstellt:
CREATE VIEW pippo AS SELECT st_geometryn(shape,1) as geom FROM events
Und dann habe ich die Ansicht mit Geoserver veröffentlicht. Alles funktioniert, bis auf GetFeatureInfo-Anforderungen, die mit dem Fehler 'Operation bei gemischten SRID-Geometrien A fehlschlagen
select * from geometry_columns
gibt zurück, dass die SRID von pippo.geom 0 ist (sollte aber 4326 sein)
Ich habe es auch mit dieser Definition für die Ansicht versucht
CREATE VIEW pippo AS SELECT st_setsrid(st_geometryn(shape,1), 4326) as geom FROM events
aber ich habe immer noch SRID = 0 in den geometrischen Spalten ... Hilfe?
So wird die Ebene in Geoserver definiert:
Problemumgehung
Ich habe eine Problemumgehung gefunden, um nicht das Problem selbst zu beheben, sondern um Geoserver die Möglichkeit zu geben, eine räumliche Suche für GetFeatureInfo-Anforderungen durchzuführen:
Anstatt eine Ansicht zu erstellen und zu veröffentlichen, habe ich eine SQL-Ebene veröffentlicht, die direkt in Geoserver definiert ist. Im Layer-Definitionsformular konnte ich den richtigen Gemoetry-Typ und die richtige SRID auswählen und jetzt funktioniert alles!
quelle