Примусовий SRID у видах у Postgis 2.0


9

У мене дуже складна проблема: у мене база даних Postgis 2.0, яка використовується як сховище даних для Geoserver 2.1.3

У мене є таблиця з стовпчиком геометрії (названої форми), з SRID 4326

Я створив такий погляд:

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

А потім я опублікував вид за допомогою геосервера. Все працює, крім запитів GetFeatureInfo, що не вдається з помилкою 'Операція на змішаних геометріях SRID Простий

select * from geometry_columns

повертає, що SRID pippo.geom дорівнює 0 (але повинен бути 4326)

Я також спробував це визначення для перегляду

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

але у мене все ще є SRID = 0 у geometry_column .... будь-яка допомога?

Ось як визначається шар у Geoserver: введіть тут опис зображення

Обхід

Я знайшов рішення, щоб виправити не саму проблему, а дозволити Geoserver виконувати просторовий пошук за запитами GetFeatureInfo:

замість того, щоб створити подання та опублікувати його, я опублікував рівень SQL, визначений безпосередньо в геосервері. У формі визначення шару це дозволило мені вибрати правильний тип гемометрії та SRID, і все працює зараз!

Відповіді:


8

Ви можете використовувати машинопис, щоб вказати сітку у geometry_columnsвікні, щось подібне

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

Керівництво має більше інформації.


0

Коли в шарах, ви можете побачити CRS (Координатна система відліку)

введіть тут опис зображення

Ви можете змусити CRS в Geoserver

http://docs.geoserver.org/2.1.3/user/webadmin/data/layers.html#webadmin-layers

введіть тут опис зображення


Geoserver шукає в geometry_column для нативного CRS шару, який у моєму випадку дорівнює 0. Я відредагував відповідь, додаючи визначення шару в Geoserver
Tommaso
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.