Newer
Older
osmCoverage / doc / osmCoverage.md
# 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」にも「データ」をコピーする


## 使い方

### 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`