route relationの描き方


# リレーションの編集: 基本編
すでに別ドキュメントとして書きましたので、そちらを参照ください。

* [OpenStreetMapリレーションとは](http://qiita.com/nyampire/items/13f6dd0daad5cc072ea8)

# route relationの用途
route リレーションは、バスや電車の運行経路、国道や県道などの長距離にわたる道路、ハイキングコースなど、なんらかの経路を記述するために利用します。
長距離のウェイを記載する場合、例えば橋やトンネルなどによってウェイが寸断されている場合や、1つの道路に複数の道路番号が割り当てられていることがしばしばあります。routeリレーションではそれらを解決することができます。

例えば、こんなかんじです。

![skitch.png](https://qiita-image-store.s3.amazonaws.com/0/9928/303a41a2-a509-3e14-6fd0-1fdec6bb0c53.png "skitch.png")


# route relationの構成
リレーション本体に付与させるタグの一覧は[OSM wikiに記載があります](http://wiki.openstreetmap.org/wiki/JA:Relation:route#.E3.82.BF.E3.82.B0)。
特に、以下の2つのタグが重要となります。

|タグ|値|説明|
|:-----|:--|:--|
|type|route|リレーションのtypeがrouteであることを指定|
|route|road<br>bicycle<br>foot<br>hiking<br>bus<br>train<br>etc...|経路の種別を特定|

[OSM Wiki -Relation:route](http://wiki.openstreetmap.org/wiki/Relation:route#Tags)

リレーション編集ウィンドウの、この部分に記入します。

![rel-2.jpeg](https://qiita-image-store.s3.amazonaws.com/0/9928/e2b3abb4-71b2-703a-dfae-261f442d1df4.jpeg "rel-2.jpeg")


## route relationの memberとrole
とても数が多く、わかりづらいのがここです。

ただ、基本的には、`forward`, `backward`, `stop`の3種類しか使わないのではないかと思います。

|対象オブジェクト種別|ロール|リレーション内に必要なメンバー数|説明|
|:----------|:----|:-------|:---|
|ウェイ|route(あるいは空白)|0個以上|経路を構成するウェイ。両方向に通行することが多い場合に使う|
|ウェイ|forward|0個以上|経路内のウェイに付与し、そのウェイが一方向にのみ通行する部分に対して使う。<br>経路は、ウェイの向きと同じ方向に対してのみ進行する|
|ウェイ|backward|0個以上|経路内のウェイに付与し、そのウェイが一方向にのみ通行する部分に対して使う。<br>経路は、ウェイの向きと逆方向に対してのみ進行する|
|ウェイ|link|0個以上|highway=motorway_linkなど、主な経路との接続道路に対して使う|
|ノード|stop|0個以上|経路上に存在するバス停や鉄道駅をあらわす。ノードのみがValidであることに注意|
|ノード|stop:\<number\>|0個以上|経路上に存在するバス停や鉄道駅。番号がある場合に利用し、番号はゼロから始まる(stop:0、stop:1、など)。<br>停留所の順番は、リレーション内でrole:stopが並んでいる順番がそのまま使われる。|
|ノード|forward/backward:stop|0個以上|経路上に存在するバス停や鉄道駅。<br>forwardかbackwardかはウェイの向きにのみ関連し、上り線や下り線などの概念とは無関係なので注意。<br>停留所の順番は、リレーション内でrole:forward:stopや role:backward:stopが並んでいる順番がそのまま使われる。|
|ノード|forward/backward:stop:\<number\>|0個以上|経路上に存在するバス停や鉄道駅。番号はゼロから始まる(stop:0、stop:1、など)。<br>forwardかbackwardかはウェイの向きにのみ関連し、上り線や下り線などの概念とは無関係なので注意。<br>停留所の順番は、リレーション内でrole:forward:stopや、role:backward:stopが並んでいる順番がそのまま利用される。|

リレーション編集ウィンドウの、この部分に記入します。

![rel-1.jpeg](https://qiita-image-store.s3.amazonaws.com/0/9928/ed5c396b-d672-ca1e-6f1b-4d48825e8698.jpeg "rel-1.jpeg")



# 具体的な登録方法
## シンプルな例
[kim_upsilonさんのスライド](http://www.slideshare.net/kim_upsilon/osm-15970518)にもある例ですが、以下のようなバスの運行経路があるとします。
STOP 1の停留所からスタートし、ウェイA・C・Eを通過して、STOP 2へ向かいます。

![rel-3.jpeg](https://qiita-image-store.s3.amazonaws.com/0/9928/a3538a1c-92f6-2ab6-9273-b751741511c2.jpeg "rel-3.jpeg")

この際、メンバーとして所属するオブジェクトのウェイの向きに注意してください。
ウェイの向きと運行経路の向きが逆転している場合は、リレーションのロールに`backward`を入力します。
なんで `backward`というロールが存在しているかというと、一方通行への対応が必要だからです。

![rel-4.jpg](https://qiita-image-store.s3.amazonaws.com/0/9928/5e845779-3652-423d-dc0c-6b57a285c021.jpeg "rel-4.jpg")

## 1つのウェイに対して複数経路を登録する場合
例えば1本の道路に対して、2系統のバスが通行している場合があります。
これこそ、リレーションの真骨頂です。
リレーションを2つ作成し、それぞれにメンバーを登録してください。

例えば、以下2つのリレーションは同時に成立します。
ウェイCの部分が、2つのリレーションに所属しています。

### ほげ路線のリレーション
![rel-5.jpg](https://qiita-image-store.s3.amazonaws.com/0/9928/ea4d3f34-bde1-03a7-033b-a0c10eab559a.jpeg "rel-5.jpg")

### ふー路線のリレーション
![rel-6.jpg](https://qiita-image-store.s3.amazonaws.com/0/9928/a3908959-0f98-078e-73ab-99b8dd0466ee.jpeg "rel-6.jpg")


# よくある困った例
## 登録するべきウェイの分割
既存で長いウェイが存在していて、本来の経路(曲がる、など)が表現できない場合、既存のウェイを適切な形に分割します。

詳細は[kim_upsilonさんの資料を参照](http://www.slideshare.net/kim_upsilon/osm-15970518)してください。

## 線路: 駅構内での迂回路線
特に単線の路線の場合、駅で列車をすれ違いさせるために、駅の中だけを複線にしている場合があります。

この場合、メインで使用される経路のみをリレーションに登録します。

## 駅・停留所の登録方法
ロールの "stop" を利用しますが、ウェイの接続の中途に入れ込む必要はありません。
停車の順番にだけ気をつけて、リレーションの上か下のどちらかへまとめます。

![rel-8.jpg](https://qiita-image-store.s3.amazonaws.com/0/9928/914a1cbd-7609-4eeb-4416-86c08a1b7fe4.jpeg "rel-8.jpg")

## 上りと下りで経路が異なる場合
* 上りのリレーションと下りのリレーションで2つの経路を作成します。
 * 例:
 * 上り路線リレーション: "name: ほげ51系統","from: STOP 1","to: STOP 2"
 * 下り路線リレーション: "name: ほげ51系統","from: STOP 2","to: STOP 1"
* 2つの経路をメンバーとして含む、[マスターリレーションを作成](http://wiki.openstreetmap.org/wiki/JA:Relation:route_master)します。

# 参照ドキュメント
* [OSM wiki - route relation](http://wiki.openstreetmap.org/wiki/Relation:route
)
* [OSM + 路線バス by kim_upsilon](http://www.slideshare.net/kim_upsilon/osm-15970518)