7.13. Особенности и диагностика PostGIS¶
7.13.1. Хранение нескольких геометрий в таблице¶
Программное обеспечение NextGIS Web поддерживает добавление таблиц, в которых в поле геометрии хранятся совместно точечные, линейные и полигональные геометрии. Это необходимо для отображения специфических наборов данных: например, если в одной таблице хранятся координаты городских парков в виде полигонов и мусорных урн в виде точек. В этом случае в NextGIS Web нужно добавить три отдельных слоя для каждого типа геометрии, и выбрать нужный элемент в поле «Тип геометрии».
После создания слоя для отображения подписей к геометриям необходимо задать атрибут наименования. Для этого следует зайти на страницу редактирования слоя и выбрать нужное поле в списке «Атрибут наименования».
Если в БД были изменены какие либо данные, касающиеся структуры (названия или типы полей, изменен их состав, переименованы таблицы и т. п.), то в свойствах соответствующего слоя необходимо обновить описания атрибутов. Для этого для выбранного слоя следует выбрать действие «Изменить», на вкладке «Слой PostGIS» в поле «Описания атрибутов» выбрать «Загрузить» из базы данных и нажать «Сохранить».
7.13.2. Диагностика PostGIS¶
Проверить корректность введенных данных при добавлении ресурса Соединение PostGIS или Слой PostGIS можно при помощи инструмента Диагностика. Для этого вам необходимо нажать на кнопку Диагностика на панели справа.
В случае, если при создании PostGIS-соединения или PostGIS слоя все поля заполнены верно - диагностика пройдет успешно.
В случае, если какие-то из введенных данных не корректны - появится сообщение об ошибке.
7.13.3. Возможные проблемы со слоями PostGIS¶
Вы создали подключение и пытаетесь создать на его основе слой PostGIS.
Если вы получаете ошибку:
Невозможно подключиться к базе данных!
Проверьте, доступна ли база данных к которой вы подключаетесь, правильная ли у вас учетная запись. Это удобно делать через pgAdmin или QGIS.
Имейте в виду, может быть так, что база временно отключена или изменились параметры доступа.
7.13.4. Создание слоя с условиями¶
В NextGIS Web нельзя указывать условия отбора записей из слоя (SQL конструкция WHERE). Это делается для обеспечения безопасности (исключения атак SQL Injection). Для обеспечения такой возможности необходимо в БД создать представления с соответствующими условиями отбора.
Для этого необходимо подключится к БД PostgreSQL/PostGIS при помощи pgAdminIII, перейти в схему данных, где следует создать представление и в элементе дерева «Представления» правой клавишей мыши вызвать контекстное меню и выбрать «Создать новое представление» (см. Рис. 7.183.. п. 1). Также диалог можно вызвать правым кликом на названии схемы, выбрав «Новый объект» и далее «Новое представление». Далее в открывшемся диалоге необходимо указать:
Название представления (вкладка «Свойства»).
Схему данных, в которой необходимо создать представление (вкладка «Свойства»).
Необходимый SQL запрос (вкладка «Определение»).
Цифрами на рисунка обозначено: 1 – дерево элементов базы данных; 2 – кнопка открытия таблицы (активна при выделенной таблице); 3 – содержимое запроса в представлении.
После этого, не выходя из pgAdminIII, можно открыть представление для проверки корректности введенного SQL запроса (см. Рис. 7.183.. п. 2).