JOSM (Java OpenStreetMap Editor) でのデータ選択とレイヤー結合
【概要】JOSMの検索機能で特定の条件に一致するオブジェクトを抽出し、別のレイヤーにまとめる手順を解説する。例として「建物(building)だけを抜き出して別レイヤーに集める」作業に使う。
【事前準備】この手順は、JOSMが起動しており、編集対象のosmファイルがレイヤーとして読み込まれていることを前提とする。osmファイルが未読込の場合は、先に「ファイル」メニューの「開く」で読み込んでおく。
【この手順で行うこと】抽出結果を入れる空の新規レイヤーを用意し(手順1)、編集対象レイヤー上で条件を検索して該当オブジェクトを選択し(手順2・3)、その選択を新規レイヤーへ結合し(手順4)、結果を保存する(手順5)。
【用語説明】
- osmファイル:OpenStreetMapのデータを保存するファイル形式
- レイヤー:複数のOSMデータを同時に扱う仕組み。レイヤーごとに独立したデータを管理する
- オブジェクト:OSMデータの基本構成要素。ノード(点)、ウェイ(線)、リレーション(関係)の3種類がある
- アクティブなレイヤー:レイヤーパネルで選択中のレイヤー。検索や編集の対象となる
- 選択を結合(Merge selection):選択中のオブジェクトを別のレイヤーへ複製する操作
【目次】
手順1:抽出先となる新規レイヤーの追加
抽出したオブジェクトをまとめる空のレイヤーを先に用意する。「ファイル」メニューから「新規レイヤー」をクリックし、新しいレイヤーを追加する。このレイヤーが手順4での結合先となる。
手順2:検索ウィンドウを開く
レイヤーパネルで、編集対象のosmファイルのレイヤーをクリックしてアクティブにする(検索はアクティブなレイヤーに対して行われるため、抽出したいデータのレイヤーをアクティブにする)。「編集」メニューから「検索」(ショートカット:Ctrl+F)を選択し、検索ウィンドウを開く。
手順3:検索条件の入力と実行
検索ウィンドウで検索条件を入力し、「検索開始」ボタンをクリックすると、条件に一致するオブジェクトが選択状態になる。
検索条件は、タグ(キーと値)やオブジェクト種別で指定する。代表的な書き方は次のとおり。
highway=residential:キーhighwayの値がresidentialのオブジェクトを抽出building:buildingキーを持つ(値は問わない)オブジェクトを抽出building=*:buildingと同じく、buildingキーに任意の値があるオブジェクトを抽出type:way:ウェイ(線)を抽出building type:way:buildingキーを持つウェイを抽出(半角スペースはAND条件を表し、building & type:wayと同じ)"addr:street"="Baker Street":キーや値にコロン(:)や空白が含まれる場合は、その部分を半角ダブルクォート(")で囲む
検索後、画面下部のステータスバーまたは選択リストで選択件数を確認する。0件の場合は何も選択されないため、条件の綴りと、大文字・小文字の区別(name=は区別する、name:は区別しない)を見直す。
手順4:選択したオブジェクトを新規レイヤーへ結合
オブジェクトが選択された状態で、「編集」メニューから「選択を結合」(ショートカット:Ctrl+Shift+M)をクリックし、結合先として手順1で作成した新規レイヤーを指定する。選択したオブジェクトが、指定したレイヤーに追加される。
この操作は元のレイヤーのオブジェクトを削除せず、選択したオブジェクトの複製を結合先レイヤーへ加える。元の編集対象レイヤーのデータはそのまま残る。「選択を結合」は、隣接する同種のOSMデータレイヤー間でのみ利用できる。
手順5:抽出結果の保存
レイヤーパネルで、抽出結果をまとめた新規レイヤーをクリックしてアクティブにする。「ファイル」メニューから「名前を付けて保存」を選び、osmファイルとして書き出す。これにより、抽出したオブジェクトを独立したファイルとして保存できる。