5: 2015-10-15 (木) 02:35:43 yuji Attached file: del.txt, Deleted an attach file: del.txt at 2015-10-15 (木) 10:33:42 at 2015-10-15 (木) 10:35:13, Deleted an attach file: tags.xml at 2015-10-15 (木) 14:54:36 |
6: 2015-10-15 (木) 08:48:39 yuji Attached file: tags.xml, Deleted an attach file: tags.xml at 2015-10-15 (木) 16:48:20 |
||
---|---|---|---|
Line 15: | Line 15: | ||
*** OpenStreetMapから日本の地図を作成 [#nb5b0177] | *** OpenStreetMapから日本の地図を作成 [#nb5b0177] | ||
- | OpenStreetMapのデータを配信している[[GEOFABRIK>http://download.geofabrik.de/]]から日本の地図をダウンロードして,Locus mapが表示できるベクター地図(mapsfogeライブラリで出力した地図)に変換して作成する。 | + | [[ここ>/PC/地図/OpenStreetMap]]に書いてあるようにして,日本の地図データを用意する。~ |
- | + | これをLocus mapが表示できるベクター地図(mapsfogeライブラリで出力した地図)に変換して作成する。~ | |
- | まず元になるOpenStreetMapの日本地図を, | + | 日本全体の地図データは大きなファイルになってしまって,ツールを使っての処理も大変時間がかかってしまうので,幾つかに分けたほうが良いかも。Locusストアで提供されている日本地図は,4個に分けています。 |
- | wget http://download.geofabrik.de/asia/japan.osm.pbf | + | |
- | とかしてDownload。&ref(japan.poly);もDownloadしておく。polyファイルは,大きなエリアの地図データからある部分を切り出す時に,切り出すエリアを指定するファイル。日本全体の地図データは大きなファイルになってしまって,ツールを使っての処理も大変時間がかかってしまうので,幾つかに分けたほうが良いかも。Locusでの日本地図は4個に分けています。 | + | |
.pbfファイルはバイナリデータに圧縮したファイルなんで,[[osmconvertツール>http://wiki.openstreetmap.org/wiki/Osmconvert]]を使ってosmfilterで編集出来るように.o5mファイルに変換する。 | .pbfファイルはバイナリデータに圧縮したファイルなんで,[[osmconvertツール>http://wiki.openstreetmap.org/wiki/Osmconvert]]を使ってosmfilterで編集出来るように.o5mファイルに変換する。 | ||
- | > osmconvert japan.osm.pbf -B=japan.poly -o=japan.o5m | + | > osmconvert japan-latest.osm.pbf -B=..\poly\japan.poly -o=japan.o5m |
そして,いらないタグ(電線とか)を[[osmfilterツール>http://wiki.openstreetmap.org/wiki/Osmfilter]]を使って削除する。&ref(del.txt);にいらないタグを入れておく。 | そして,いらないタグ(電線とか)を[[osmfilterツール>http://wiki.openstreetmap.org/wiki/Osmfilter]]を使って削除する。&ref(del.txt);にいらないタグを入れておく。 | ||
> osmfilter japan.o5m --parameter-file=del.txt > japan_temp.o5m | > osmfilter japan.o5m --parameter-file=del.txt > japan_temp.o5m | ||
+ | > rm japan.o5m | ||
ところどころ,名前に(英語)のような表示が出る所があるんで,ついでにこれを削除しちゃう。~ | ところどころ,名前に(英語)のような表示が出る所があるんで,ついでにこれを削除しちゃう。~ | ||
Line 31: | Line 30: | ||
> osmconvert japan_temp.o5m -o=japan_temp.osm | > osmconvert japan_temp.o5m -o=japan_temp.osm | ||
> perl -p -e 's/\(.+?\)//g;' japan_temp.osm > japan.osm | > perl -p -e 's/\(.+?\)//g;' japan_temp.osm > japan.osm | ||
+ | > rm japan_temp.o5m | ||
+ | > rm japan_temp.osm | ||
こんなようにして,(英語)を削除した。 | こんなようにして,(英語)を削除した。 | ||
これで,ベクター日本地図のjapan.osmが出来た。.osmファイルはテキストファイル(xml)で,日本全体だと20G以上になります。 | これで,ベクター日本地図のjapan.osmが出来た。.osmファイルはテキストファイル(xml)で,日本全体だと20G以上になります。 | ||
+ | |||
+ | 日本地図データのjapan.osmからLocusストアのように4個に分割する場合は, | ||
+ | > osmconvert japan.osm -B=..\poly\hokkaido.poly -o=hokkaido.osm | ||
+ | > osmconvert japan.osm -B=..\poly\honshu.poly -o=honsyu.osm | ||
+ | > osmconvert japan.osm -B=..\poly\shikoku.poly -o=shikoku.osm | ||
+ | > osmconvert japan.osm -B=..\poly\kyushu.poly -o=kyushu.osm | ||
+ | のように,osmconvertツールで各polyファイルでエリアを指定して抽出すればOK。 | ||
*** SRTMのデータから等高線地図を作成 [#w49cf595] | *** SRTMのデータから等高線地図を作成 [#w49cf595] | ||
Line 67: | Line 75: | ||
ただ出来上がった等高線地図には,おかしな等高線がたくさん出来ている。ダウンロードしたSRTMの.hgtファイルを確認したら,ところどころデータがおかしいのが原因。~ | ただ出来上がった等高線地図には,おかしな等高線がたくさん出来ている。ダウンロードした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/ のだと大丈夫ってこと。) ,srtm2osmでダウンロードした.hgtファイルに入れ替えて,phyghtmapを再度使って.osmファイルを作成する。~ | + | srtm2osmでダウンロードした.hgtファイルのデータは大丈夫みたいなので(つまり http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/ にあるデータはダメで,http://e4ftl01.cr.usgs.gov/SRTM/SRTMGL3.003/2000.02.11/ のだと大丈夫ってこと。) ,srtm2osmでダウンロードした.hgtファイルに入れ替えて,再度phyghtmapを使って.osmファイルを作成した。~ |
+ | これでやっと,日本の等高線データのjapan_srtm.osmが作成できた。 | ||
- | ダウンロードした.hgtファイルをLocus/data/srtm/ フォルダーに入れておいて,Locus mapで地形を表示する設定にすると,起伏なんかが明暗表示されて見やすくなります。 | + | ちなみに,ダウンロードした.hgtファイルをLocus/data/srtm/ フォルダーに入れておいて,Locus mapで地形を表示する設定にすると,起伏なんかが明暗表示されて見やすくなります。 |
*** 日本の地図と等高線をマージして完成 [#g8a11fa9] | *** 日本の地図と等高線をマージして完成 [#g8a11fa9] | ||
- | 上で作成したベクター日本地図とベクター等高線地図を1つのファイルにマージしながら,ベクターマップの.mapフォーマットに変換します。~ | + | 上で作成したベクター日本地図とベクター等高線地図を1つのファイルにマージして,ベクターマップの.mapフォーマットに変換します。~ |
ツールはOpenStreetMapのwikiに書かれている[[osmosis>http://wiki.openstreetmap.org/wiki/JA:Osmosis]]と[[mapsforge writer plugin(mapsforge-map-writer-*.jar)>https://github.com/mapsforge/mapsforge]]を使いました。Locusのベクターマップのフォーマットは,mapsforgeライブラリをサポートしているからです。他にもGarminのベクターマップの.imgファイルもそのまま使えます。 | ツールはOpenStreetMapのwikiに書かれている[[osmosis>http://wiki.openstreetmap.org/wiki/JA:Osmosis]]と[[mapsforge writer plugin(mapsforge-map-writer-*.jar)>https://github.com/mapsforge/mapsforge]]を使いました。Locusのベクターマップのフォーマットは,mapsforgeライブラリをサポートしているからです。他にもGarminのベクターマップの.imgファイルもそのまま使えます。 | ||
osmosisはjavaアプリケーションですが,日本全体を処理する場合はRAMがたくさんあるPC出ないと,そのままではメモリ不足で停止しちゃいます。(5Gを割り当てても足りない)~ | osmosisはjavaアプリケーションですが,日本全体を処理する場合はRAMがたくさんあるPC出ないと,そのままではメモリ不足で停止しちゃいます。(5Gを割り当てても足りない)~ | ||
type=hdを使うと速度はかなり遅くなりますが,メモリ不足はなんとか回避できます。tag-conf-file=&ref(tags.xml);で表示用にタグ設定しておきます。(設定がおかしいかも・・・) | type=hdを使うと速度はかなり遅くなりますが,メモリ不足はなんとか回避できます。tag-conf-file=&ref(tags.xml);で表示用にタグ設定しておきます。(設定がおかしいかも・・・) | ||
- | > 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 | + | > 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\tags.xml zoom-interval-conf=10,9,11,14,12,21 map-start-zoom=10 |