開放街圖標誌 OpenStreetMap 開放街圖

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

於 2012年五月 8日 由 VanchesterRussian (Русский)發表。 上一次更新在 2012年五月 9日。

Задача образовалась в процессе подготовки почвы для создания поисковика на основе 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”

電子郵件圖示 藍天圖示 Facebook 圖示 LinkedIn 圖示 乳齒象圖示 Telegram 圖示 X 圖示

討論

b166er2012年05月 8日 11時58分 發表的評論

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

登入 來留下評論