Pull to refresh

Comments 17

Наверное, это какой-то простой вопрос, раз вы не осветили его в статье. Вопрос такой: как происходит взаимодействие пользователей с БД? Допустим, я работаю в MapInfo и хочу получить какую-то карту, поработать с её слоями и сохранить. Как это происходит в вашей случае?
Как правило, каждая таблица в БД представляет собой картографический слой, а каждая запись — геометрический объект (точка, линия, полигон).
Вообще, PostGIS — штука достаточно мощная. Хорошая русская документация есть вот тут: gis-lab.info/docs/postgis/manual/
Не совсем так. Запись в таблице описывает сам объект: координаты, форма, атрибутика и так далее. А сама таблица может содержать только один тип объектов: точка, линия или полигон.
Ну, с точки зрения ГИС, таблица — это слой, а запись — объект слоя. Естесственно, что слой может иметь только один тип.
Тип «geometry» в PostGIS описывает ни что иное, как геометрическую фигуру, которая являет собой набор точек с определёнными координатами, и опционально — служебную информацию (например — информацию по охвату для ускорения пространственных запросов, использующих индексы).
| А сама таблица может содержать только один тип объектов: точка, линия или полигон.

| Естесственно, что слой может иметь только один тип.

Это с чего бы вдруг?
В данном случае придется писать еще несколько статей про то, как подключаться к БД и использовать ее. :) Программных продуктов (в данном случае речь о ГИС) множество. Только у нас в конторе их несколько штук. Как свободных, так и коммерческих. И подключение к БД у них выглядит по разному. Например, MapInfo использует ODBC для подключения к БД. В данном случае тут можно посоветовать обратиться только к мануалу самой программы.
А для пользователей создается подключение в том или ином продукте. Им остается нажать только кнопочку «Connect to DB» и выбирать из вывалившегося списка карты.
Спасибо за ответ.
Ситуация:
1. Первый юзер забрал карту.
2. Второй юзер забрал эту же карту.
3. Первый и второй юзеры изменили карту на локальных машинах.
4. Первый загрузил карту в БД.
5. ???

Типичная ситуация, надо блокировать каким-то образом доступ к файлам (не средствами СУБД же) или дифать. Как это решается у вас?
Если два юзера изменяют один и тот же ОБЪЕКТ (т.е. строку БД), то могут быть проблемы. Если же изменяют разные объекты (aka строки), то проблем не будет.
Во всяком случае, в QGIS так: он просто апдейтит строки по Primary Key.
Ну, скажем так… Чтобы юзеры одновременно правили один и тот же объект одновременно — очень редко. Очень-очень редко.:)
К тому же, запись в БД происходит только после нажатия кнопки сохранения. Где до этого крутятся файлы, не смотрел. Наверняка где-то во временных обитают. Так вот, одновременно нажать кнопку сохранения независимо друг от друга будет ну очень сложно:)
Хм, транзакционность обеспечивает СУДБ, это ясно. Я говорю о ситуации, когда второй пользователь затрет изменения первого (потому что его взял версию с сервера до сохранения изменений от первого пользователя).
обновите pgAdmin :) в новых версиях перевод более адекватный
Про то, как создать просто базу, просто пользователя и просто дать ему права (т.е. ничего специфичного для PostGIS, просто базовые команды администрирования PostgreSQL) я вижу. Про то, как создать базу с PostGIS и как с ней работать, я не вижу ничего, кроме установки прав на чтение таблиц PostGIS.

А где же написано о создании базы данных с поддержкой PostGIS? Где же createlang plpgsql [yourdatabase] и загрузка команд из postgis.sql в новую базу? Где альтернативный путь — использование базы template_postgis в качестве шаблона при создании базы? Где волшебная функция AddGeometryColumn? Где упоминается слово «проекция» и роль spatial_ref_sys?
Полностью согласен.

Статья совершенно не раскрывает тему.

В контексте постгресса очень важно рассказать про разницу между типами данных geometry и geography — postgis.refractions.net/docs/ch04.html#PostGIS_GeographyVSGeometry; и проекции очень важны для работы с географией (хотя это уже не связано с постгрессом как таковым).

Также при хранении географии в базе желательно обеспечить версионность.
Про права — совсем не просто. Не достаточно вот так вот взять, загрузить слои подключиться к БД и начать работать. Долго не мог понять, почему же никак не хотят у меня редактироваться слои. Оказалось, что права нужно было выставлять не только на сами таблицы, но и на их последовательности, плюс доступ к таблицам с геометрией.
Про createlang plpgsql согласен, упустил сей момент. Для чего служит spatial_ref_sys вкратце написано.
Тема действительно достаточно сложная и объемная. Про операции с данными средствами PostGIS — это уже другая история статья:)
очередной перепечатник с мануала… точнее с его введения.
поставить по мануалу могут все, а вот ньюансы рассказать.
Такие как конвертирование sql запросами на лету из одной системы координат в другую и т.д.
3 года назад имел дело немного с PostGIS, диплом делал, сейчас он сильно изменился?
Sign up to leave a comment.

Articles