Почему хорошо работающее представление получает нулевые значения в родной ограничительной рамке в Geoserver? - PullRequest
2 голосов
/ 14 января 2020

Я работаю на удаленной базе данных, и у меня есть все привилегии как пользователя. Я создал пространственную реляционную базу данных, которая состоит из 5 таблиц, и одна из них имеет столбец геометрии. Когда я пытаюсь опубликовать sh только таблицу с геометрией, имеющей srid GGRS87, EPSG: 2100, нативный bbox работает хорошо, но когда я пытаюсь создать представление из PostGIS или через Geoserver, Native BBox дает значения (-1, -1,0,0), а также BB / Lat Lat не имеют правильных значений. Представление в БД работает правильно, объединяя все 5 таблиц. Наконец, я замечаю, что когда я создайте представление через Geoserver, столбец SRID не отображается, чтобы установить его оттуда.

Что может быть неправильным go в соединении между PostGIS и Geoserver или это что-то еще? Спасибо!

CREATE VIEW buildings AS
SELECT 
  id_owner,id_building,address_name,address_num,
  region,x,y,closing_file
FROM owner
JOIN owner_property 
  ON owner.id_owner = owner_property.owner_id
JOIN building 
  ON property.building_id=building.id_building;

1 Ответ

2 голосов
/ 14 января 2020

Ваш вид, кажется, не имеет геометрии, и, следовательно, нет SRS. Скорее всего, вы забыли вставить его в ваше представление или, как показывает ваш скриншот, пары координат разделены на два столбца - x и y. Так что просто используйте ST_MakePoint с x и y в запросе, используемом для создания представления ..

CREATE VIEW buildings_reinspection_file AS
SELECT 
  id_owner,id_building,address_name,address_num,
  region,inspection_num,reinspection_num,reinspection_date,
  approval_num,ownership_perc,building_assessm,color_tagged,
  construction_type,ST_MakePoint(x,y,2100),closing_file
FROM owner
JOIN owner_property 
  ON owner.id_owner = owner_property.owner_id
JOIN property 
  ON owner_property.property_id = property.id_property
JOIN building 
  ON property.building_id=building.id_building
JOIN financial_assist 
  ON property.financial_assist_id=financial_assist.id_financial_assist;

.. и попробуйте опубликовать sh снова в GeoServer. Если столбец, созданный вами в таблице building, содержащий геометрию, называется point, просто замените ST_MakePoint(x,y,2100) на building.point.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...