# osmCoverage ## Summary 1. 位置情報付きのデータとOpenStreetMap上のデータとを比較・評価して、各データの`score`を算出する。 2. 算出されたデータは、PostGISデータベースに格納される。 ## Development * Used by NetBeans 8.2 * OpenJDK 8 ## External library * [hayashi.jar](https://osdn.net/projects/hayashilib/releases/) - hayashi lib * [javax.json.jar](https://javaee.github.io/jsonp/) - JSON parser * [commons-compress-1.18.jar](https://commons.apache.org/proper/commons-compress/download_compress.cgi) - Apache Commons Compress * [hsqldb_2.2.9.jar](http://hsqldb.org/) - HSQLDB * [postgresql-42.2.4.jar](https://www.postgresql.org/) - PostgeSQL JDBC driver ### build ### Development environment ![MachineStructure](machinestructure.png) 1. Geofabrikから`japan-latest.osm.pbf`を「作業用PC」にダウンロード 2. 「作業用PC」でゴニョゴニョすると、「統計データ(カバレッジ率)」と「ベクタタイル」が生成される 3. 生成された「統計データ」と「ベクタタイル」を GitHub に プッシュ(push) する 4. ついでに、`Raspi3`にある「公開用のPostGIS」にも「データ」をコピーする ## 処理 ### バス停留所データ * 国土交通省国土政策局「国土数値情報 バス停留所データ 平成22年」 * 国土数値情報のバス停位置を中心とする、300m四方以内に存在するOSMのバス停ノードの評価点の合計を数える。また、nameが同一ならば600m四方以内にまでのノードも評価点に加える。 | Type | tag | score,NO_NAME,FIXED,NO_BUS | removed | |------|-------------------------------------|----------|-------| | node | highway=bus_stop | 50,1,1,- | false | | node | amenity=bus_station | 50,1,1,- | false | | area | amenity=bus_station | 50,1,1,- | false | | node | public_transport=platform | 50,1,1,1 | false | | node | disused:highway=bus_stop | 50,-,-,- | true | | node | abandoned:highway=bus_stop | 50,-,-,- | true | | node | demolished:highway=bus_stop | 50,-,-,- | true | | node | no:highway=bus_stop | 50,-,-,- | true | | node | disused:public_transport=platform | 50,-,-,- | true | | node | abandoned:public_transport=platform | 50,-,-,- | true | | node | demolished:public_transport=platform | 50,-,-,- | true | | node | no:public_transport=platform | 50,-,-,- | true | 評価点: * 基礎点 → 50ポイント * nameがない → 1ポイント * fixmeがある → 1ポイント * bus=yesがない → 1ポイント ### 燃料給油所データ * 国土交通省国土政策局「国土数値情報 燃料給油所データ 平成28年(2016)」 * 国土数値情報の燃料給油所位置を中心とする、200m四方の矩形領域に存在するOSMのamenity=fuelノードの評価点の合計を数える。 | Type | tag | score,NO_BLAND,FIXED | removed | |-------------|------------------------------|--------|-------| | node & area | amenity=fuel | 50,1,1 | false | | node & area | disused:amenity=fuel | 50,-,- | true | | node & area | abandoned:amenity=fuel | 50,-,- | true | | node & area | demolished:amenity=fuel | 50,-,- | true | | node & area | removed:amenity=fuel | 50,-,- | true | | node & area | no:amenity=fuel | 50,-,- | true | 評価点: * 基礎点 → 50ポイント * blandがない → 1ポイント * fixmeがある → 1ポイント ### 郵便局データ * 国土交通省国土政策局「国土数値情報 郵便局データ(平成25年)」 * 国土数値情報の位置を中心とする、200m四方の矩形領域に存在するOSMの amenity=postoffice ノードの評価点の合計を数える | Type | tag | score,FIXED | removed | |-------------|--------------------------------|------|-------| | node & area | amenity=post_office | 50,1 | false | | node & area | disused:amenity=post_office | 50,- | true | | node & area | abandoned:amenity=post_office | 50,- | true | | node & area | demolished:amenity=post_office | 50,- | true | | node & area | removed:amenity=post_office | 50,- | true | | node & area | no:amenity=post_office | 50,- | true | 評価点: * 基礎点 → 50ポイント * fixmeがある → 1ポイント ### 警察署データ * 国土交通省国土政策局「国土数値情報 警察署データ(平成24年:2012)」 * 国土数値情報の警察署位置を中心とする、200m四方の矩形領域に存在するOSMのamenity=policeノードの評価点の合計を数える | Type | tag | score,FIXED | removed | |-------------|------------------------------|------|-------| | node & area | amenity=police | 50,1 | false | | node & area | disused:amenity=police | 50,- | true | | node & area | abandoned:amenity=police | 50,- | true | | node & area | demolished:amenity=police | 50,- | true | | node & area | removed:amenity=police | 50,- | true | | node & area | no:amenity=police | 50,- | true | 評価点: * 基礎点 → 50ポイント * fixmeがある → 1ポイント ## 使い方 ### database PostGIS #### PostGIS(osmdb) データベースを立ち上げる "PostGIS"を起動する * Use by DockerHub `kartoza/postgis:9.6-2.4` 1) `docker pull kartoza/postgis:9.6-2.4` 2) `WORKAREA=$pwd` 3) `mkdir $HOME/pg_data` 4) `docker run --name=osmdb -m 2g -d -e POSTGRES_USER=alex -e POSTGRES_PASS=password -e POSTGRES_DBNAME=osmdb -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -v $HOME/pg_data:/var/lib/postgresql --restart=always kartoza/postgis:9.6-2.4` * `--name=osmdb` * `-m 2g` momory 2GB * `-e POSTGRES_USER=alex` * `-e POSTGRES_PASS=password` * `-e POSTGRES_DBNAME=osmdb` * `-e ALLOW_IP_RANGE=0.0.0.0/0` すべてのIPからの接続を許可する * `-p 5432:5432` * `-v $HOME/pg_data:/var/lib/postgresql` PostgreSQL databade data folder * `--restart=always` ``` $ docker pull kartoza/postgis:9.6-2.4 $ mkdir $ mkdir $HOME/pg_data $ docker run -m 2g --name=osmdb -d -e POSTGRES_USER=alex -e POSTGRES_PASS=password -e POSTGRES_DBNAME=osmdb -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -v $HOME/pg_data:/var/lib/postgresql --restart=always kartoza/postgis:9.6-2.4 $ ``` "pgAdmin4"で接続を確認する 1) `docker pull dpage/pgadmin4` 2) `docker run --name=pgadmin4 -p 80:80 -e "PGADMIN_DEFAULT_EMAIL=gisuser@domain.com" -e "PGADMIN_DEFAULT_PASSWORD=gisuser" -d dpage/pgadmin4` * --name=pgadmin4 * -e "PGADMIN_DEFAULT_EMAIL=gisuser@domain.com" * -e "PGADMIN_DEFAULT_PASSWORD=gisuser" 3) pgAdmin4 : Login * `http://localhost/` * userid: `gisuser@domain.com` * password: `gisuser` 4) pgAdmin4 : 接続 / Connection * host name: `localhost` * port: `5432` * database admin: `postgres` * user name: `alex` * password: `password` "PostGISへの接続設定ファイル"を準備する * postgis `osmdb.properties` ``` db_driver=org.postgresql.Driver db_url=jdbc:postgresql://172.17.0.1:5432/osmdb db_user=alex db_passwd=password ``` "" 6. osm2pgsql ``` echo '*:*:*:alex:password' > ~/.pgpass chmod 600 ~/.pgpass ``` 91. stop pgAdmin4 `docker stop stupefied_poitras` 92. stop postGIS `docker stop postgis`