PostgreSQLとPostGISを使ってみたときのメモ
経路探索に関する研究をやろうとして調べたことのメモ
目次
内容
PostgreSQLとPostGISのインストール
自分の環境に合う方法でインストールしてください.
Archでyayを使っている場合は以下を押下してください.
yay -Syu postgresql postgis
PostgreSQLの初期設定
ターミナルで以下を押下する.
su - postgres
initdb --no-locale --encodig=UTF8
PostgreSQLではデフォルトでpostgresというユーザが作られるっぽい.
いよいよPostgreSQLでPostGISを使ってみる
何はともあれデータベース(DB)を作る
ターミナルで以下を押下してください.
createdb mygisdb
作成したDBにログインする
ターミナルで以下を押下するとユーザpostgresでmygisdbに接続した状態になる.
psql -U postgres -d mygisdb
Open Street Map(OSM)からPostGISにインポートする
osm2pgsqlのインストール
自分の環境に合う方法でインストールしてください.
Archでyayを使っている場合は以下を押下してください.
yay -Syu osm2pgsql-git
データのダウンロード
https://learnosm.org/ja/osm-data/getting-data/:OSMデータの取得から参考にOSMからインポートしたいデータをダウンロードする.
九州のデータを例に話を進める.
以下のようにしてデータをダウンロードする.
wget http://download.geofabrik.de/asia/japan/kyushu-latest.osm.pbf
OSMからPostgreSQLのDBに格納する例
osm2pgsql -c -d mygisdb -U postgres --slim -C 4200 --cache-strategy sparse --host localhost kyushu-latest.osm.pbf
それぞれのオプションの意味は以下のコマンドで調べるか,ググりやがってください.
man osm2pgsql
シェープファイル(.shpのファイル)からPostgreSQLのDBに格納する例
shp2pgsqlというツールを使うが,これはpostgisに含まれているので,インストールは終わっているはずです.
インポートするシェープファイルをexample.shpだとして説明します.
shp2pgsqlというツールでは,sql文を列挙してあるコマンドを抽出します.
そして抽出したコマンドが書かれているファイルを使ってDBにぶっこむという流れです.
SQLコマンドの抽出
shp2pgsql -W cp932 -D -I -s 4612 example.shp TABLE_NAME > FOO.sql
cp932の文字コードにしているけど,これどうにかならんのかな...
DBへの格納
psql -U postgres -d mygisdb -f FOO.sql
最後に
使ってみることだけに焦点を当てたので,こんな感じになってしまった.
また別の機会にPostGISのことをより詳しく書くかもしれない.