Wymuś SRID w widokach w Postgis 2.0


9

Mam bardzo trudny problem: mam bazę danych Postgis 2.0, używaną jako magazyn danych dla Geoserver 2.1.3

Mam tabelę z kolumną geometrii (o nazwie kształt) z SRID 4326

Stworzyłem taki widok:

CREATE VIEW pippo AS SELECT st_geometryn(shape,1) as geom FROM events

A potem opublikowałem widok za pomocą geoservera. Wszystko działa, z wyjątkiem żądań GetFeatureInfo, które kończą się błędem „Operacja na mieszanych geometriach SRID Prosty

select * from geometry_columns

zwraca, że ​​SRID pippo.geom wynosi 0 (ale powinien wynosić 4326)

Próbowałem również z tą definicją widoku

CREATE VIEW pippo AS SELECT st_setsrid(st_geometryn(shape,1), 4326) as geom FROM events

ale nadal mam SRID = 0 w geometry_columns .... jakaś pomoc?

Oto, jak zdefiniowano warstwę w Geoserver: wprowadź opis zdjęcia tutaj

Obejście

Znalazłem obejście, aby rozwiązać nie sam problem, ale pozwolić Geoserverowi na przeprowadzenie wyszukiwania przestrzennego na żądanie GetFeatureInfo:

zamiast tworzyć widok i publikować go, opublikowałem warstwę SQL zdefiniowaną bezpośrednio w geoserver. W formularzu definicji warstwy mogłem wybrać odpowiedni typ gemoetrii i SRID i wszystko już działa!

Odpowiedzi:


8

Możesz użyć typmod, aby określić srid w geometry_columnswidoku, coś w rodzaju

CREATE VIEW pippo AS
SELECT st_geometryn(shape,1)::geometry(Geometry, 4326) as geom
FROM events

Instrukcja ma więcej informacji.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.