Forza SRID nelle viste in Postgis 2.0


9

Ho un problema molto complicato: ho un database Postgis 2.0, usato come archivio dati per Geoserver 2.1.3

Ho una tabella con una colonna geometrica (denominata forma), con SRID 4326

Ho creato una vista come questa:

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

E poi ho pubblicato la vista utilizzando geoserver. Tutto funziona, ad eccezione delle richieste GetFeatureInfo, che non riesce con l'errore "Operazione su geometrie SRID miste A semplice

select * from geometry_columns

restituisce che lo SRID di pippo.geom è 0 (ma dovrebbe essere 4326)

Ho provato anche con questa definizione per la vista

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

ma ho ancora SRID = 0 in geometry_columns .... qualche aiuto?

Ecco come viene definito il layer in Geoserver: inserisci qui la descrizione dell'immagine

Soluzione

Ho trovato una soluzione alternativa per risolvere non il problema stesso, ma per consentire a Geoserver di eseguire la ricerca spaziale sulle richieste GetFeatureInfo:

invece di creare una vista e pubblicarla, ho pubblicato un livello SQL definito direttamente in geoserver. Nel modulo di definizione del livello mi ha permesso di selezionare il giusto tipo di gemoetry e SRID e tutto ora funziona!

Risposte:


8

Puoi usare un typmod per specificare lo srid nella geometry_columnsvista, qualcosa del genere

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

Il manuale ha maggiori informazioni.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.