夕方の池袋駅のホーム

記事一覧 / 作り方とデータの話

OpenStreetMapで駅前の店を数えるときの落とし穴|1,882駅を集計して分かった4つのこと

写真: nagi usano(CC BY 4.0)

住みやすさ駅前スコアでは、全国1,882駅の徒歩圏にあるスーパーやコンビニの数を、OpenStreetMap(以下OSM)のデータから数えています。OSMは誰でも編集できる無料の地図で、店の位置と種類が細かく登録されています。商用の地図データを買わずに全国の店を数えられるので、個人で作るツールにはとてもありがたい存在です。

ただ、実際に数えてみると、そのままでは使えない癖がいくつもありました。この記事では、集計の途中でぶつかった問題を4つ、実際の数字と一緒に書きます。OSMで何かを数えようとしている人の参考になれば幸いです。

1. 同じ店が、人によって違う種類で登録されている

いちばん影響が大きかったのがこれです。

OSMでは、店の種類を「タグ」で表します。ドラッグストアなら shop=chemist、調剤薬局なら amenity=pharmacy を付ける、というのが一応の決まりです。ところが日本のドラッグストアは、医薬品も売るし調剤もする店が多いので、どちらのタグを付けるかが登録した人によって分かれます。

shop=chemist だけで数えたときの結果が次の表です。

項目値
1.6km以内にドラッグストアが無いとされた駅348駅
そのうち、「薬局」の側にドラッグストアのチェーンが登録されていた駅219駅
徒歩10分(800m)以内のドラッグストアが0件とされた駅776駅(41.2%)

徒歩10分以内にドラッグストアが1軒も無い駅が4割、というのは実感と合いません。そこで「薬局」として登録された店を見ると、1,335駅で、近い3軒の中にドラッグストアのチェーンが入っていました。駅ごとに最も近いチェーンを数えると、マツモトキヨシが246駅、スギ薬局が129駅、ココカラファインが105駅です。どれも明らかにドラッグストアです。

直し方: ひとつのタグだけで数えず、関係しそうなタグを両方取ってから、名前で見分けます。ドラッグストアのチェーンを数えた記事では、この方法で最寄りまでの距離の中央値が460mから220mに変わりました。

なお、正直に書いておくと、駅前スコアのドラッグストアの件数はまだ shop=chemist だけで数えています。そのため、実際より少なく出ている駅があります。

2. 同じチェーンの名前がばらばら

店の名前も、登録した人の書き方しだいです。駅の近くのコンビニの名前を集めたところ、セブン-イレブンだけで次のような書き方がありました。

登録された名前件数
セブン-イレブン1,760
セブンイレブン37
7-Eleven12
セブン-イレブン(全角のハイフン)1
セブンイレブン浦和駅東口店 など、店名入り数十件

ファミリーマートでは、名前の後ろに空白が付いた「ファミリーマート 」が31件、「FamilyMart」が17件、「ファミマ」が3件ありました。空白1文字の違いでも、プログラムは別の店として数えます。

直し方: 名前の完全一致で数えず、「セブン」「7-Eleven」を含むものはセブン-イレブン、というように、表記の揺れを吸収する規則を作ります。その際、「ローソンストア100」のように、名前は似ているのに別の業態のものを巻き込まないよう注意が要ります。規則を作ったら、どこにも当てはまらなかった名前の一覧を出して目で確かめるのが確実です。

3. 「0件」には、本当に無いものと登録されていないものが混ざる

徒歩10分(800m)以内の件数が0だった駅の割合を、種類ごとに並べてみます。

徒歩10分以内に1件も登録が無い駅の割合(全国1,882駅)
  • 銭湯・温浴施設61.9%
  • コインランドリー50.5%
  • 図書館46.2%
  • フィットネス43.6%
  • ドラッグストア41.2%
  • 100円ショップなど33.3%
  • 歯科15.3%
  • 病院・診療所14.3%
  • スーパー6.8%
  • コンビニ0.8%

コンビニが0件の駅は1%未満で、これはおそらく実態に近いはずです。コンビニは目立つので、登録する人が多いからです。

一方、コインランドリーが半分の駅で0件というのは、実感と合いません。コインランドリーは住宅地にも多い店です。ただ、小さな店は地図に登録されにくいので、実際には無いのではなく、登録されていないだけの駅がかなりあると考えています。図書館やフィットネスは、本当に徒歩10分以内に無い駅も多いはずで、どこまでが登録漏れかをOSMだけで見分けることはできません。

直し方: 完全には直せません。できるのは、登録が多く実態に近いと考えられる種類(コンビニ、スーパー、飲食店など)を中心に比べることと、0件を「無い」と言い切らないことです。このサイトの記事では、登録の少ない種類の件数から駅の良し悪しを結論づけないようにしています。駅前スコアでも、件数は地図に登録された数にもとづく目安で、実際の店の数とは違うことがあると断っています。

4. 「駅から何m」は、どこから測るかで変わる

駅からの距離は、駅の代表地点(地図上の1点)からの直線距離で測っています。これには2つの問題があります。

ひとつは、大きな駅ではどの出口から出るかで、近い店が変わることです。東京駅や新宿駅のような駅では、代表地点から見て「いちばん近い店」が、利用者の使う出口からはずっと遠いことがあります。

もうひとつは、直線距離と歩く距離の違いです。線路や川の向こう側にある店は、直線では近くても、実際には踏切や橋まで回り道をします。

直し方: 厳密には、出口ごとの位置と道路のつながりを使って、歩く距離を計算する必要があります。駅前スコアではそこまでしていません。「徒歩5分」は、不動産の広告と同じく分速80mで換算した半径400mの円で数えています。回り道がある場所では、実際に歩くと5分では着かない店も入ります。記事でも「直線距離」と書いて、実際の道のりではないことが分かるようにしています。

数える前に、結果を予想しておく

振り返ると、4つとも「結果が実感と合わない」と気づいたところから直し始めていました。ドラッグストアが無い駅が348駅という数字は、東京の駅まで含まれていたので、何かがおかしいとすぐに分かりました。

OSMで何かを数えるときは、次の順番で進めると失敗が減ると思います。

  1. 数える前に、だいたいどんな結果になるか予想しておく
  2. 関係しそうなタグを広めに取る
  3. 名前の表記の揺れをまとめる規則を作り、どこにも当てはまらなかった名前を目で確かめる
  4. 予想と大きく違う結果が出たら、まずデータの登録のされ方を疑う
  5. 直しきれない部分は、記事やツールの中で限界として書いておく

OSMのデータは、世界中の有志が少しずつ登録してきたものです。店の数え漏れを見つけたら、自分で地図に登録することもできます。