前回、Geoなデータベースを作ったので、
今回はそこにGeoなデータを入れてみたいと思います
OSM(オープンストリートマップ)のデータをいれてみます。
OSMは誰でも使用できて、だれでも編集できる地図なのです。
もちろんタダです。
そしてこのOSMを編集する人をマッパーと呼ぶらしいです。地図好きってけっこう多いんですね
他にも国土数値情報とか自然環境情報GISとか、
タダでダウンロードできるGISデータはたくさんあるようです。
それを組み合わせれば、いろいろ面白そうですね
osm2pgsqlインストール
OSMのデータを扱うために、osm2pgsqlを入れます。
説明が英語だ、、、
OSMのデータをPostGISのDBにいれるためのツールってことでいいかと思います。。。
osm2pgsqlを入れるためは、他にもいろいろインストールが必要なのですが、
その辺もあんまり理解できていないので、
トライ&エラーでやっていきたいと思います。
|
|
案の定エラーになりました、、、
libtoolが必要らしいので入れます
|
|
これでautogen.shは成功しました
|
|
またエラーだ、、、
libxml12を入れます
|
|
別のエラーが、、、
bzip2をいれます
|
|
今度はgeosです
|
|
続いてproj、、、、
|
|
protobuf-cがない、、、
|
|
pg_configがみつからないようですが、
これは環境変数を設定すればOKなようです
|
|
Boostが必要なようです
これは手でいれないといけないみたい、、、
|
|
|
|
やっと成功しました。あとはmakeすればOK
|
|
やっとできました。。。。
長かった、、、
OSMのデータをいれる
日本の最新の地図情報を落としてきて、DBに入れてみます
|
|
またエラーが、、、
libboost_filesystem.so* の場所を探して、環境変数に追加
|
|
またエラーになってしまいました。--cache-strategy sparse
のオプションをつけよと言われたので、その通りに、、、、
|
|
メモリが足りないので-C
で指定してあげます。
|
|
そもそも、メモリが足りない、、、-C
の値をいろいろ変えてみても、
メモリが多いとそもそもメモリがないよと怒られ、メモリが少ないとメモリが足りないと言われます、、、、
詰んだ、、、、
ここで諦めてはいけません
この記事で作った仮想環境のメモリを増やしましょう
まず今のメモリを確認
|
|
vagrantの環境からログアウトして、Vagrantfileにメモリ割当の記述を追加
|
|
vagrantを再起動して、メモリを確認
|
|
メモリが増えました。
しかし、この方法で-C
の値を4200までふやしましたが、
エラーが解消されませんでした、、、、
やっぱり詰んだ、、、
と思っていましたが、slimモードを使うと、メモリが少なくてもいけるそうです。--slim
を追加して、再実行!
|
|
やっとできました。。。
長い道のりだった、、、、
データを確認する
ほんとに入ってるか、DBをのぞいてみましょう
|
|
|
|
テーブルが増えてます!
planet_osm_polygon
に建物などの「面」の情報(ポリゴン)planet_osm_line
に道路などの「線」の情報(ライン)planet_osm_point
に「点」の情報(ポイント)が格納されています。
じゃあ、planet_osm_roads
は何なのかというと、
縮尺が大きいときにつかわれるplanet_osm_line
のサブセットだそうです。
縮尺が大きいときに細い道まで全部表示したら大変だからってことでしょうかね
他の3つは中間テーブルのようです。
詳細はコチラ
テーブルの定義をみてみます
|
|
カラムが多い、、、、
最後にあるgeometryというデータ型がジオなデータなわけですね。
900913というナゾの数字、これは前回のブログでもふれた空間参照系を表しています。
繰り返しになりますが、DBで扱える空間参照系はspatial_ref_sys
テーブルで管理しています。
|
|
意味不明ですが、WGSと書いてあるので、世界測地系なのでしょう、、、
wayというカラムはこの空間参照系のデータだよっていうことですね。
テーブルの中身を見てみなしょう。
まずは件数
|
|
カラムも多いけど、データ数も多いですね。日本全国なので、、、、
適当にselectしても混乱しそうなので、データの仕様を確認してみましょう。
OSMの仕様はこちらで確認できます。
http://wiki.openstreetmap.org/wiki/JA:Map_Features
例えばこのページをみれば、
buildingカラムに「commercial」が設定されていたらは「商業施設なんだな」ってわかるわけですね。
バーとかアイスクリーム屋さんまで指定できるみたいで、眺めてると結構面白いです。
商業施設をselectしてみましょう
|
|
それっぽい検索結果になったので、ちゃんとデータが入ってるみたいです!
今日はここまで!!!