Начнем с установки всего этого добра.
Итак по порядку.
QuantumGIS - по сути бесплатный аналог MapInfo или ArcGIS. Подробнее в википедии
PostGIS - расширение для PostgreSQL, позволяющее хранить и обрабатывать геопространственные данные. Это означает, что PostGIS сам по себе работать не будет. Ему нужна PostgreSQL. На сегодняшний день лучше ставить PostgreSQL 9.1 (посмотреть как установить и настроить можно в моей статье Установка и настройка PostgreSQL 9.1 в Ubuntu).
Соответственно все остальные компоненты нужно ставить с учетом версии PostgreSQL
pgRouting - набор методов для поиска кратчайшего пути по таким алгоритмам как Дейкстры и A*. Более подробно с возможностями можно ознакомиться на сайте проекта
Установка PostGIS и QuantumGIS
Для тех, кто работает с ГИС в убунту существует хороший репозиторий UbuntuGIS. Добавить его несложно:
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
В этом репозитории нас интересуют PostGIS и QuantumGIS.
sudo apt-get install postgresql-9.1-postgis
sudo apt-get install qgis
PostGIS устанавливается как расширение (extension) в PostgreSQL. Поэтому для того чтобы создать базу данных, предназначенную для хранения и обработки геопространственных данных необходимо в имеющуюся базу добавить расширение postgis. Делается это в pgAdmin. Найдите в дереве свою базу данных, а в ней узел Extensions и добавьте туда расширение postgis. Если такого расширения нет, то попробуйте обновить ветку с вашей базой данных, а если не поможет, то отсоединиться и присоединиться к серверу заново.
Установка pgRouting
pgRouting берем из репозитория команды Georepublic.
sudo add-apt-repository ppa:georepublic/pgrouting
sudo apt-get update
sudo apt-get install postgresql-9.1-pgrouting
На сим установка pgRouting не закончилась. Необходимо в определенной последовательности выполнить специальные скрипты.
Все скрипты находятся по пути /usr/share/postlbs/
Последовательность следующая:
- routing_core.sql
- routing_core_wrappers.sql
- routing_topology.sql
- matching.sql
Можно их открыть в pgAdmin и выполнить там. Заодно можно ознакомиться с содержимым этих скриптов.
Тем, кто слишком крут для графических оболочек ;) необходимо выполнить следующую последовательность команд:
psql -U postgres -f /usr/share/postlbs/routing_core.sql
psql -U postgres -f /usr/share/postlbs/routing_core_wrappers.sql
psql -U postgres -f /usr/share/postlbs/routing_topology.sql
psql -U postgres -f /usr/share/postlbs/matching.sql
При выполнении этих команд можно отхватить ошибку
psql: FATAL: Peer authentication failed for user "postgres"
Это означает что вы не можете выполнить эти команды на сервере, потому что у вас недостаточно прав. Тут может возникнуть некоторое замешательство: вроде SQL-команда запускается от имени администратора postgres, а в то же время не достаточно прав. Все дело в том, что сама команда psql запускается от имени вашего текущего пользователя, а он, в свою очередь, не может даже соединиться с PostgreSQL (куда уж там до выполнения каких-либо команд). Из подобной ситуации есть выход - запустить psql от имени пользователя postgres
sudo -u postgres psql -U postgres -f /usr/share/postlbs/routing_core.sql
Остальные скрипты запускаются аналогично.
Ну вот и все. В будущем попробую написать пост про то, как все это дело использовать при поиске наикратчайшего пути (тем более, что русской документации по этому очень сложно найти)
4 комментария :
Последний стабильный релиз QGIS 1.8 имеет проблемы с кириллицей в атрибутивных таблицах.
http://gis-lab.info/forum/viewtopic.php?f=27&t=10949&start=15
Да, согласен. Проблем в opensource проектах встречается немало. Однако из-за того, что все эти opensource проекты как правило очень гибки, то и решение найти можно. Вот и на форуме ГИС лаба решение нашли ;) Тут скорее вопрос поиска золотой середины между стоимостью приложения и стоимостью его внедрения/поддержки. Но это совсем другая история.
В результате экспериментов я смог повторить эту ошибку с кодировкой. Появляется она только во вновь созданных шейпфайлах. Я шейпфайлы использую только для того чтобы данные из одной системы перенести в другую. Для организации же рабочего процесса лучше использовать QGIS в связке с каким-нибудь сервером. В моем случае это PostGIS.
Второе, что могу предложить - постараться максимально отделить геопространственные данные от остальных данных.
Oleg, какое такое решение нашли на форуме гис-лаба? о_О
Владислав, приложите, пожалуйста, скрин окна, где можно видеть Extentions в PgAdminIII.
Решение не очень красивое, но работающее - задать значение переменной SHAPE_ENCODING=UTF-8. Вот тут эта переменная всплывает в первый раз и через пару ответов выдают готовое решение.
Отправить комментарий