|
1: 2015-10-05 (月) 03:52:54 yuji |
| + | ** Locus maps用の地図作成 [#veb1f176] |
| + | [[Locus maps>https://play.google.com/store/apps/details?id=menion.android.locus.pro&hl=ja]]で使用できるベクター日本地図は,Locusアプリのストアからダウンロード出来るんだけど(ファイル3個まで無料),日本全体をカバーするには4個ダウンロードしないとダメなのと,実はLocusストアのベクター日本地図は,ところどころデータが破損していて,正常に地図が表示されない。このことを報告したら,Locusでは新しいベクター地図を用意しているんで,もう少し待ってくれと言っていた。 |
| | | |
| + | なんで,Locus mapで使用できるベクター日本地図を探すと,以下からダウンロードして使用できた。~ |
| + | [[Mapsforge Download Server>http://download.mapsforge.org/]]~ |
| + | OpenStreetMapから変換した日本全体のベクター地図がダウンロード出来て,Locusでもそのまま使用できる。~ |
| + | 残念ながら,Mapsforgeの地図には等高線データは含まれていない。また更新頻度は1~2ヶ月ぐらいで最新とは限らない。 |
| + | |
| + | [[OpenAndroMaps>http://www.openandromaps.org/en/]]~ |
| + | OpenStreetMapから変換した日本全体のベクター地図がダウンロード出来る。~ |
| + | しかもこのデータは,SRTMのデータから作成された等高線がバッチリ入っています。しかし更新頻度はMapsforgeよりも遅い。 |
| + | |
| + | OpenStreetMapは,自分で自由に地図を編集出来るのが楽しくていいわけです。編集したらすぐそのデータを使いたくなっちゃいます。~ |
| + | そこで,OpenStreetMapの地図データからLocusで使用できるベクター地図を自前で作成することにした。 |
| + | |
| + | *** OpenStreetMapから日本の地図を作成 [#nb5b0177] |
| + | OpenStreetMapのデータを配信している[[GEOFABRIK>http://download.geofabrik.de/]]から日本の地図をダウンロードして,Locus mapが表示できるベクター地図(mapsfogeライブラリで出力した地図)に変換して作成する。 |
| + | |
| + | まず元になるOpenStreetMapの日本地図を, |
| + | wget http://download.geofabrik.de/asia/japan.osm.pbf |
| + | とかしてDownload。[[japan.polyファイル>http://download.geofabrik.de/asia/japan.html]]もDownloadしておく。(polyファイルは,大きなエリアの地図データからある部分を切り出す時に,切り出すエリアを指定するファイル。) |
| + | |
| + | 表示する時なんかで不要な英語タグなんかもいらないんで,ついでに削除しておく。~ |
| + | .pbfファイルはバイナリデータに圧縮したファイルなんで,[[osmconvertツール>http://wiki.openstreetmap.org/wiki/Osmconvert]]を使ってテキストファイルに変換する。 |
| + | |
| + | > osmconvert japan.osm.pbf -B=japan.poly -o=japan.o5m |
| + | |
| + | そして,いらないタグ(電線とか)を[[osmfilterツール>http://wiki.openstreetmap.org/wiki/Osmfilter]]を使って削除する。del.txtにいらないタグを入れておく。 |
| + | > osmfilter japan.o5m --parameter-file=del.txt > japan_temp.o5m |
| + | |
| + | さらに, |
| + | > osmconvert japan_temp.o5m -o=japan_temp.osm |
| + | > perl -p -e 's/\(.+?\)//g;' japan_temp.osm > japan.osm |
| + | |
| + | こんなようにして,英語とかを削除した。 |
| + | これで,ベクター日本地図のjapan.osmが出来た。.osmファイルはテキストファイルで,日本全体だと20G以上になります。 |
| + | |
| + | *** SRTMのデータから等高線地図を作成 [#w49cf595] |
| + | OpenStreatMapから日本のベクター地図は作成できたんだけど,等高線が入っていない。 |
| + | ハイキングやちょっとした山登りをするときには,等高線が見れないと不便。 |
| + | そこで,日本のベクター等高線地図を作ることにした。 |
| + | |
| + | Shuttle Radar Topography Mission(SRTM)と呼ばれるスペースシャトルに積み込んだレーダを使って全世界の詳細な立体地形データを作成すること目的としたミッションがあって,その成果が利用できるみたい。~ |
| + | [[SRTM3 Version3>http://e4ftl01.cr.usgs.gov/SRTM/SRTMGL3.003/2000.02.11/]]~ |
| + | ここからデータ(.hgt.zip)をダウンロード出来る。~ |
| + | SRTMのデータからOpenStreetMapのフォーマットに変換してくれるツールがあるみたいなんで,それを使用して等高線地図を作ってみた。 |
| + | |
| + | [[srtm2osm>http://wiki.openstreetmap.org/wiki/Srtm2Osm#Download]]~ |
| + | まず見つけたツールがsrtm2osm。OpenStreetMapのwikiに使い方が書かれていた。.netのアプリなんでWindows用。(monoを使ってLinuxでも動かせるようだが・・・)~ |
| + | srtm2osmのオプションの-bounds1に日本の左下の緯度・経度と右上の緯度・経度を指定すれば,SRTMデータが有るサーバからデータをダウンロードして.osmファイルを作成してくれる。~ |
| + | ただ日本全国になると129個のファイル(データがある分)の.osmファイルが出来てしまって,これを1つの.osmにマージしないといけないのだが,うまくマージ(osmosisを使った)が出来ない。~ |
| + | |
| + | [[Phyghtmap>http://katze.tfiu.de/projects/phyghtmap/index.html]]~ |
| + | 次に見つけたのがPhyghtmap。Pythonで動くので,WindowsでもLinuxでも使える。このツールでもやはり129個のデータをダウンロードするのはsrtm2osmと同様だが,.osmに変換する時にオプションにmax-nodes-per-tile=0を使うと,1個の.osmにマージして出力してくれた :-D |
| + | |
| + | > phyghtmap --polygon=japan.poly --output-prefix=japan_srtm --srtm=3 --step=20 --line-cat=500,100 --start-node-id=20000000000 --start-way-id=10000000000 --write-timestamp --max-nodes-per-tile=0 |
| + | |
| + | step=20で20mの等高線に,line-cat=500,100で500m/100m毎に少し太線にするようにした。write-timestampオプションを指定しないと,後でosmosisでマージしてLocus map用のベクター地図.mapファイルを作成する時にtimestampが無いってエラーを出してうまくいかない。~ |
| + | これで,なんとか20mでの日本の等高線地図japan_srtm.mapを作成できた。~ |
| + | |
| + | ただ出来上がった等高線地図には,おかしな等高線がたくさん出来ている。ダウンロードしたSRTMの.hgtファイルを確認したら,ところどころデータがおかしいのが原因。~ |
| + | srtm2osmでダウンロードした.hgtファイルのデータは大丈夫みたいなので(つまり http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/ にあるデータはダメで,http://e4ftl01.cr.usgs.gov/SRTM/SRTMGL3.003/2000.02.11/ のだと大丈夫ってこと。) ,あらためて.hgtファイルをこれに入れ替えて,phyghtmapで.osmファイルを作成する。~ |
| + | |
| + | ダウンロードした.hgtファイルをLocus/data/srtm/ フォルダーに入れておいて,Locus mapで地形を表示する設定にすると,起伏なんかが明暗表示されて見やすくなります。 |
| + | |
| + | *** 日本の地図と等高線をマージして完成 [#g8a11fa9] |
| + | 上で作成したベクター日本地図とベクター等高線地図を1つのファイルにマージします。~ |
| + | ツールはOpenStreetMapのwikiに書かれている[[osmosis>http://wiki.openstreetmap.org/wiki/JA:Osmosis]]を使いました。 |
| + | |
| + | osmosisはjavaアプリケーションですが,日本全体を処理する場合はRAMがたくさんあるPC出ないと,そのままではメモリ不足で停止しちゃいます。(5Gでも足りない)~ |
| + | type=hdを使うと速度は遅くなりますが,メモリ不足はなんとか回避できます。 |
| + | > osmosis --read-xml file="japan_osm" --sort -- read-xml file="japan_strm.osm" --sort --merge --mapfile-writer file="japan.map" type=hd tag-conf-file=tags.xml zoom-interval-conf=10,9,11,14,12,21 map-start-zoom=10 |
| + | |
| + | |
| + | とにかく時間がかかります。マージするだけでも大体27時間ぐらいかかった :-o |
| + | |
| + | 出来た日本のベクターマップは,[[こちら>https://onedrive.live.com/redir?resid=9D5AE460143634BB%21936]] |