Лого на OpenStreetMap OpenStreetMap

Поднятие PostgreSQL 9.1 + PostGIS 1.5 в качестве зеркала БД OSM

Објавено од Vanchester во 8 Мај 2012 г. на Russian (Русский). Последна поднова на 9 Мај 2012 г..

Задача образовалась в процессе подготовки почвы для создания поисковика на основе OSM. Инструкции вроде как и есть, но: некоторые для PGSQL 8.4, некоторые для других схем и т.п. Вобщем, задача заняла время, а значит она не тривиальная.

Имеем:

  • Ubuntu Server 12.04;

  • Данные любимого края (я использую формат PBF), ну или всей планеты, если у вас есть ресурсы. Взято отсюда;

Шаг 1. Установка пакетов.

Все свежие версии пакетов есть в репозиториях, поэтому просто выполняем:

$ sudo apt-get install osmosis postgresql-9.1-postgis postgresql-contrib-9.1

Шаг 2. Создание и подготовка БД

В целом, взято отсюда: PostGIS Setup

С этого момента у нас в системе есть пользователь postgres, который имеет полные права администрирования PostgreSQL. От его имени мы создаём БД и пользователя этой БД (изначально postgres имеет пустой пароль):

$ su postgres

$ createuser –superuser gisuser

$ createdb -E UTF8 -O gisuser osm

$ exit

Теперь нужно подготовить PostGIS:

Заметка: не пренебрегайте указанием хоста при использовании psql, без использования этого ключа у меня не проходила аутентификация.

Заметка: если в вашей системе нет используемых файлов, попробуйте найти их при помощи команды locate. При этом предварительно выполнив sudo updatedb.

$ psql -h localhost -U gisuser -d snapshot -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql

$ psql -h localhost -U gisuser -d snapshot -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql

Устанавливаем схему базы:

$ psql -h localhost -U gisuser -d snapshot -c “CREATE EXTENSION hstore;”

$ psql -h localhost -U gisuser -d snapshot -f /usr/share/doc/osmosis/examples/pgsnapshot_schema_0.6.sql

С этого момента у нас есть абсолютно пустая база нужной структуры.

Шаг 3. Заполнение базы.

Делается единственной командой:

$ osmosis –read-pbf file=”/path/to/file.osm.pbf” –write-pgsql host=”localhost” database=”snapshot” user=”gisuser”

Икона за е-пошта Икона на Bluesky Икона на Фејсбук Икона на LinkedIn Икона на Mastodon Икона на Телеграм Икона на X

Разговор

Коментар од b166er во 8 Мај 2012 г. во 11:58 ч.

отлично! thumbsup а как заливать ежедневные дифы?

Најава за да оставите коментар