GeoServer and OpenStreetMap ページ
http://blog.geoserver.org/2009/01/30/geoserver-and-openstreetmap/
の 「download sections of the data set」リンクをクリックします。
Cloudmade の Mappers の Download ページ
http://downloads.cloudmade.com/
の Last maps update: が 13 December 2011 から更新されていないので、別のサイトからダウンロードしました。
1 GeoServer and OpenStreetMap ページ
http://blog.geoserver.org/2009/01/30/geoserver-and-openstreetmap/
の 「instructions on downloading their data」リンクをクリックします。
2 Planet.osm ページ
http://wiki.openstreetmap.org/wiki/Planet.osm
の「http://download.geofabrik.de/」をクリックします。
3 OpenStreetMap Data Extracts ページの「Asia」をクリックします。
4 Download OpenStreetMap data for this region:Asia ページ
http://download.geofabrik.de/asia.html
の「Japan」をクリックします。
5 Download OpenStreetMap data for this region:Japan ページ
http://download.geofabrik.de/asia/japan.html
をみると、全国版しかないようです。
「japan-latest.osm.pbf」をクリックしてダウンロードします。
(1時間以上かかりました。)
17-2 PostGIS に japan-latest.osm.pbf を登録
1 template_postgisをテンプレートとして、オーナーが user で osm というデータベースを作成します。
user@debian7-vmw:~/ダウンロード/$ su - postgres
パスワード:
postgres@debian7-vmw:~$ createdb -T template_postgis -O user osm
postgres@debian7-vmw:~$ psql -l
データベース一覧 名前 | 所有者 | エンコーディング| 照合順序 | Ctype(変換演算子)| アクセス権 ------------------+---------+----------------+-------------+-----------------+----------------------- nippon_bmi | user | UTF8 | ja_JP.UTF-8| ja_JP.UTF-8 | nippon_nlni | user | UTF8 | ja_JP.UTF-8| ja_JP.UTF-8 | osm | user | UTF8 | ja_JP.UTF-8| ja_JP.UTF-8 | postgres | postgres| UTF8 | ja_JP.UTF-8| ja_JP.UTF-8 | template0 | postgres| UTF8 | ja_JP.UTF-8| ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres| UTF8 | ja_JP.UTF-8| ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template_postgis | postgres| UTF8 | ja_JP.UTF-8| ja_JP.UTF-8 | (stdin):q
osm データベースの geometry_column テーブルと spatial_ref_sys テーブルのオーナーを user に変更します。
postgres@debian7-vmw:~$ psql osm
psql (9.1.9)
"help" でヘルプを表示します.
osm=# \d
リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+-------------------+---------+---------- public | geography_columns | ビュー | postgres public | geometry_columns | テーブル | postgres public | spatial_ref_sys | テーブル | postgres (3 行)
osm=# ALTER TABLE geography_columns OWNER TO user;
ALTER TABLE
osm=# ALTER TABLE geometry_columns OWNER TO user;
ALTER TABLE
osm=# ALTER TABLE spatial_ref_sys OWNER TO user;
ALTER TABLE
osm=# \d
リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+-------------------+----------+---------- public | geography_columns | ビュー | user public | geometry_columns | テーブル | user public | spatial_ref_sys | テーブル | user (3 行)
osm=# \q
2a osm2pgsql コマンドでデータベースに登録します。
osm2pgsql がないときは、Synaptic パッケージマネージャでインストールします。
一般ユーザで japan-latest.osm.pbf のあるディレクトリに移動して、次のように入力します。
postgres@debian7-vmw:~$ exit
ログアウト
user@debian7-vmw:~/ダウンロード$ osm2pgsql -d osm -U user -P 5432 japan-latest.osm.pbf
osm2pgsql SVN version 0.80.0 (64bit id space)
Using projection SRS 900913 (Spherical Mercator)
Setting up table: planet_osm_point
NOTICE: テーブル"planet_osm_point"は存在しません。省略します
NOTICE: テーブル"planet_osm_point_tmp"は存在しません。省略します
Setting up table: planet_osm_line
NOTICE: テーブル"planet_osm_line"は存在しません。省略します
NOTICE: テーブル"planet_osm_line_tmp"は存在しません。省略します
Setting up table: planet_osm_polygon
NOTICE: テーブル"planet_osm_polygon"は存在しません。省略します
NOTICE: テーブル"planet_osm_polygon_tmp"は存在しません。省略します
Setting up table: planet_osm_roads
NOTICE: テーブル"planet_osm_roads"は存在しません。省略します
NOTICE: テーブル"planet_osm_roads_tmp"は存在しません。省略します
Allocating memory for dense node cache
Allocating dense node cache in one big chunk
Allocating memory for sparse node cache
Sharing dense sparse
Node-cache: cache=800MB, maxblocks=102401*8192, allocation method=3
Mid: Ram, scale=100
Reading in file: japan-latest.osm.pbf
Processing: Node(65140k 50.5k/s) Way(0k 0.00k/s) Relation(0 0.00/s)
Node cache size is too small to fit all nodes. Please increase cache size
Error occurred, cleaning up
オプションをいろいろ試してみましたが、成功しませんでした。
大きなデータには、高スペックのPCが必要なようです。
japan-latest.shp.zip をダウンロードしました。
(2時間弱かかりました。)
2b japan-latest.shp.zip を解凍します。
3GB容量が必要です。
user@debian7-vmw:~/ダウンロード$ mkdir japan-latest
user@debian7-vmw:~/ダウンロード$ unzip -d japan-latest japan-latest.shp.zip
Archive: japan-latest.shp.zip
inflating: japan-latest/README
extracting: japan-latest/buildings.cpg
inflating: japan-latest/buildings.dbf
inflating: japan-latest/buildings.prj
inflating: japan-latest/buildings.shp
inflating: japan-latest/buildings.shx
extracting: japan-latest/landuse.cpg
inflating: japan-latest/landuse.dbf
inflating: japan-latest/landuse.prj
inflating: japan-latest/landuse.shp
inflating: japan-latest/landuse.shx
extracting: japan-latest/natural.cpg
inflating: japan-latest/natural.dbf
inflating: japan-latest/natural.prj
inflating: japan-latest/natural.shp
inflating: japan-latest/natural.shx
extracting: japan-latest/places.cpg
inflating: japan-latest/places.dbf
inflating: japan-latest/places.prj
inflating: japan-latest/places.shp
inflating: japan-latest/places.shx
extracting: japan-latest/points.cpg
inflating: japan-latest/points.dbf
inflating: japan-latest/points.prj
inflating: japan-latest/points.shp
inflating: japan-latest/points.shx
extracting: japan-latest/railways.cpg
inflating: japan-latest/railways.dbf
inflating: japan-latest/railways.prj
inflating: japan-latest/railways.shp
inflating: japan-latest/railways.shx
extracting: japan-latest/roads.cpg
inflating: japan-latest/roads.dbf
inflating: japan-latest/roads.prj
inflating: japan-latest/roads.shp
inflating: japan-latest/roads.shx
extracting: japan-latest/waterways.cpg
inflating: japan-latest/waterways.dbf
inflating: japan-latest/waterways.prj
inflating: japan-latest/waterways.shp
inflating: japan-latest/waterways.shx
user@debian7-vmw:~/ダウンロード$ ogrinfo japan-latest
INFO: Open of `japan-latest'
using driver `ESRI Shapefile' successful.
1: roads (Line String)
2: landuse (Polygon)
3: places (Point)
4: points (Point)
5: natural (Polygon)
6: waterways (Line String)
7: railways (Line String)
8: buildings (Polygon)
user@debian7-vmw:~/ダウンロード$ ogrinfo -summary japan-latest roads
INFO: Open of `japan-latest'
using driver `ESRI Shapefile' successful.
Layer name: roads
Geometry: Line String
Feature Count: 6562686
Extent: (122.934662, 24.046695) - (148.608999, 45.522858)
Layer SRS WKT:
GEOGCS["GCS_WGS_1984",
DATUM["WGS_1984",
SPHEROID["WGS_84",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["Degree",0.017453292519943295]]
osm_id: Real (11.0)
name: String (48.0)
ref: String (16.0)
type: String (16.0)
oneway: Integer (1.0)
bridge: Integer (1.0)
tunnel: Integer (1.0)
maxspeed: Integer (3.0)
user@debian7-vmw:~/ダウンロード$ ogrinfo japan-latest roads
---
OGRFeature(roads):449
osm_id (Real) = 18570435
name (String) = 青梅街道 (Ome Kaido)
ref (String) = 4
type (String) = primary
oneway (Integer) = 1
bridge (Integer) = 0
tunnel (Integer) = 0
maxspeed (Integer) = (null)
LINESTRING (139.696256 35.6934182,139.6966554 35.6933508,139.696761400000014 35.6933416,139.6968459 35.6933462,139.6969128 35.6933596,139.6970872 35.6934076,139.6976354 35.6935848,139.6977742 35.6936083,139.6978915 35.693619,139.6980017 35.6936276,139.6981911 35.6936395,139.6984744 35.6936582,139.6989307 35.6936879,139.699104 35.6936955)
---
今回は roads のデータのみ使います。
shp2pgsql コマンドで sql ファイルを作成します。
user@debian7-vmw:~/ダウンロード$ cd japan-latest/
user@debian7-vmw:~/ダウンロード/japan-latest$ ls
README landuse.shp places.prj railways.dbf waterways.cpg
buildings.cpg landuse.shx places.shp railways.prj waterways.dbf
buildings.dbf natural.cpg places.shx railways.shp waterways.prj
buildings.prj natural.dbf points.cpg railways.shx waterways.shp
buildings.shp natural.prj points.dbf roads.cpg waterways.shx
buildings.shx natural.shp points.prj roads.dbf
landuse.cpg natural.shx points.shp roads.prj
landuse.dbf places.cpg points.shx roads.shp
landuse.prj places.dbf railways.cpg roads.shx
user@debian7-vmw:~/ダウンロード/japan-latest$ shp2pgsql roads.shp roads > roads.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
psqlコマンドを使ってデータベースに登録します。
一般ユーザで sql ファイルのあるディレクトリに移動して、次のように入力します。
user@debian7-vmw:~/ダウンロード/japan-latest$ psql -d osm -f roads.sql
メッセージが流れて、終了するまでに時間がかかります。
データベースを確かめてみます。
user@debian7-vmw:~/ダウンロード/japan-latest$ psql osm
psql (9.1.9)
"help" でヘルプを表示します.
osm=> \dt
リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+------------------+----------+-------- public | geometry_columns | テーブル | user public | roads | テーブル | user public | spatial_ref_sys | テーブル | user (3 行)osm=> \d roads
テーブル "public.roads" カラム | 型 | 修飾語 -----------+------------------------+----------------------------------------------------- gid | integer | not null default nextval('roads_gid_seq'::regclass) osm_id | double precision | name | character varying(48) | ref | character varying(16) | type | character varying(16) | oneway | smallint | bridge | smallint | tunnel | smallint | maxspeed | smallint | the_geom | geometry | インデックス: "roads_pkey" PRIMARY KEY, btree (gid) CHECK 制約: "enforce_dims_the_geom" CHECK (st_ndims(the_geom) = 2) "enforce_geotype_the_geom" CHECK (geometrytype(the_geom) = 'MULTILINESTRING' ::text OR the_geom IS NULL) "enforce_srid_the_geom" CHECK (st_srid(the_geom) = (-1)) (stdin):q
osm=> \q
0 件のコメント:
コメントを投稿