普段は自転車で走りつつコンビニ等のマッピングをしているt-mzです。今年書いた記憶があるOSM関連の資料や記事は動画マッピングくらいしかなかったので、この記事を書きました。前置きと全く関係ないですが、今日のテーマは駅です。
はじめに
駅は比較的目立つPOIの一つですが、OSMの駅の位置ってかなりずれた位置に描かれてることが多いと思いませんか?ずれている理由と、簡単な修正手順をまとめておきます。
今回の作業目標
マッパーの聖地?かもしれない、[智頭(ちず)駅]
(https://www.openstreetmap.org/node/3791318501#map=18/35.26499/134.22609)の位置を修正します。編集後にスクリーンショットを取得したので、背景画像は全て編集後のものになっています。
そもそも、何で大きくずれてるの?
現在の日本の駅のノード(railway=station)の多くは、タグを見るとsource=KSJ2となっており、2008年から2009年頃に国土数値情報の鉄道データ(以下、KSJ2)からインポートされたものです。KSJ2は、下の図のような2種類の線データで構成されています。
KSJ2の駅区間データはノード数2~5個程度のウェイで構成されていて、駅中心を示すノードの情報は持っていません。インポートスクリプトでは、駅区間のノードのうち真ん中に近いノードをstationノードとするようになっていたのですが、智頭駅のように多くの駅はノード数が2個だったため、駅区間の端がstationノードとなり、中心から大きく(今回の場合約64mも)ずれてしまう形でインポートされたようです。
既に置かれているデータの位置を大きく動かすのには抵抗があるかもしれませんが、元が大きくずれてるんだから、Bingで大まかに修正しても全く問題ありません。
ただ、単純に駅のノードを動かすと線路も一緒に動いてしまいます。ということで、線路を動かさずに駅の位置だけを動かす手順を紹介します。
修正手順
駅のタグ付けルールの詳細はrailway=stationを見ていただくとして・・
おおまかな流れはこんな感じ。
- 正しい駅の位置にrailway=stationのノード(新ノード)をコピーして配置する
- 旧ノードに付いているタグを削除する(ノード自体は消さないこと)
- 周辺のデータ拡充も可能な範囲で実施する
JOSMでは次のように操作してください。
1-a. 旧ノードを選択してからキーボードでCtrl+C
1-b. 正しい駅の位置にマウスポインタを置いてCtrl+V。旧ノードは線路上にありましたが、新ノードを線路上に置く必要はありません。
1-c. 新ノードのsourceの値を変更。Bing画像で新ノードの位置を決めたならsource=Bing
1-d. 新ノードの、note, note:ja, source_refの各タグを削除
2. 旧ノードの、name, railway, wikipedia等のタグを削除(インポート後に編集された形跡がなければ全てのタグを削除)
3. これ以上はお好みでどうぞ。今回は、駅構内の線路を分岐したり、停止位置にノードを追加して、railway=stopなどのタグを付けました。
停止位置の追加などのため線路上にノードを追加すると、わずかに線路の位置がずれてしまう場合があります。気になる時は追加したノードを1個だけ選択して「ノードを一直線に配列」(ショートカットはLキー)してみてください。
今回の作業の最終形は最初に示した「修正後」の画像のとおりです。
終わりに
この記事で駅の位置を修正してくれる方が増えると嬉しいです。ところで、国土数値情報は今年、OSMへのインポートができない利用条件となってしまったようで、この先開業する路線のインポートは難しそうです。地下路線は衛星画像やGPSログも使えないため、地理院地図をトレースするくらいでしょうか。
今週12月6日に仙台市地下鉄東西線が開業したのですが、地理院地図のトレースで描かれているようですね。