Paksa SRID dalam tampilan di Postgis 2.0


9

Saya memiliki masalah yang sangat sulit: Saya memiliki database Postgis 2.0, digunakan sebagai datastore untuk Geoserver 2.1.3

Saya punya meja dengan kolom geometri (bernama bentuk), dengan SRID 4326

Saya telah membuat tampilan seperti ini:

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

Dan kemudian saya menerbitkan tampilan menggunakan geoserver. Semuanya berfungsi, kecuali untuk permintaan GetFeatureInfo, yang gagal dengan kesalahan 'Operasi pada geometri SRID campuran A sederhana

select * from geometry_columns

mengembalikan bahwa SRID dari pippo.geom adalah 0 (tetapi harus 4326)

Saya mencoba juga dengan definisi ini untuk tampilan

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

tapi saya masih punya SRID = 0 di geometry_columns .... ada bantuan?

Berikut adalah bagaimana layer didefinisikan dalam Geoserver: masukkan deskripsi gambar di sini

Penanganan masalah

Saya menemukan solusi untuk memperbaiki bukan masalah itu sendiri, tetapi untuk membiarkan Geoserver melakukan pencarian spasial pada permintaan GetFeatureInfo:

alih-alih membuat tampilan dan menerbitkannya, saya menerbitkan SQL-layer yang didefinisikan langsung di geoserver. Dalam bentuk definisi-lapisan itu memungkinkan saya untuk memilih jenis gemoetry yang tepat dan SRID dan semuanya berfungsi sekarang!

Jawaban:


8

Anda dapat menggunakan typmod untuk menentukan srid pada geometry_columnstampilan, kira-kira seperti itu

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

The pengguna memiliki info lebih lanjut.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.