Overpass API を使った松屋データ取得

注意: かきかけです。あと、正しいかどうかも謎ですのでご指摘等を歓迎します。

Overpass API を使って OSM から松屋データを抽出します。用途としては、

など、品質向上のために利用するほか、

といった使い方もあります。

現状では、タグづけがしっかりしていないケースが多いので、「松屋」全部から、明らかに異なるものを除外、という手順がヨサゲ?


["name"~"松屋"]
["highway"!~"."]
["railway"!~"."]
["waterway"!~"."]
["power"!~"."]
["name"!~"^西松屋"]

日本国内だけを対象としたい場合、(日本列島を含む矩形領域では中国大陸などが含まれてしまうので) たとえば以下のような boudary を使うこととなります。 (ご隠居チェックでは、複数の矩形領域にしていました)。


(poly:"
45.864445 140.944241
45.688207 142.119778
45.979083 149.063137
45.140653 149.282864
19.710168 154.136074
19.13513 153.537319
22.786643 143.748501
21.994323 142.759732
17.041374 135.937222
17.277563 134.728726
21.28971 129.856289
21.922998 128.735684
22.472288 123.055752
22.786643 122.437771
25.691363 122.652005
34.32559 128.798855
35.030291 129.359158
37.016 131.23782
37.840441 131.523464
");

ただし、実際のところ、"name"~"松屋" に限っていえば、 以下のような矩形領域でも日本国内の地物しか存在しませんでした。


(29.32907,122.84827,
46.38259,147.20285);

属性値にもとづく抽出は、タグ名を指定しての抽出しかできません。 「いずれかの属性に "松屋" を含む」データの抽出はできないので、 これはこれでなんとかする必要があります (name* タグがなく brand タグだけがついたノードの実例あり)

松屋公式店舗案内との比較

松屋公式サイトの店舗案内に、各店舗の情報があり、地図表示のための位置情報もありますが、 ライセンス上、 OSMに直接取り込むことはできません。 また、松屋公式サイトの情報が間違っているものもあります。

OSMでは、店舗中心位置にノードを置くことになっていますが、 松屋公式では、ビルや駐車場などの敷地内なら可という判断をしている可能性があります。 (道路一本分ずれているとか道路の反対側にあるといった、あからさまにずれているものは、フォームから指摘すると修正されたが、 建物から外れている程度のものは修正されなかった)

リクエスト例

松屋は、ノードとウェイしかないので以下のようにしていますが、一般的な話としては、リレーションも対象にする必要があります。


(
node
["name"~"松屋"]
["highway"!~"."]
["railway"!~"."]
["waterway"!~"."]
["power"!~"."]
["brand"!~"西松屋"]
["name"!~"^西松屋"]
(29.32907,122.84827,
46.38259,147.20285);
way
["name"~"松屋"]
["highway"!~"."]
["railway"!~"."]
["waterway"!~"."]
["power"!~"."]
["brand"!~"西松屋"]
["name"!~"^西松屋"]
(29.32907,122.84827,
46.38259,147.20285);
);
(._;>;);
out meta;

たとえばこれを request-matsuya といったファイルに書いて、


% wget --post-file request-matsuya -O result-matsuya.osm http://overpass-api.de/api/interpreter

すると、松屋のデータが得られます。

かだい

「松屋」自体の誤字等

たとえば Matsuya とすべき name:en タグが Matuya になっているようなケースがあります。 (松屋以外のチェーン店では、「吉野」がありがち)