ファンアプリの中に、韓国の聖地巡礼マップを入れている。地図の上にピンが並び、タップすると説明が出て、Googleマップで写真とストリートビューが見られる、という機能だ。この記事は旅行記ではない。載せる場所を決める側が何を基準に足し引きしたか、という設計ノートである。
残ったのは16か所だった
現在データに入っているスポットは16件。カテゴリは6つ定義してあるが、実際に使われているのは5つだけで、「グルメ」は定義したまま1件も入っていない。理由は後述する。
| スポット | 地域 | 分類 |
|---|---|---|
| HYBE本社(龍山) | ソウル・龍山区 | 公式 |
| LINE FRIENDS ストア(弘大) | ソウル・麻浦区 | 公式 |
| ソウル総合運動場(蚕室) | ソウル・松坡区 | コンサート |
| 高尺スカイドーム | ソウル・九老区 | コンサート |
| 景福宮 | ソウル・鍾路区 | 名所 |
| Nソウルタワー(南山) | ソウル・龍山区 | 名所 |
| 弘大ストリート | ソウル・麻浦区 | 名所 |
| 釜山(市) | 釜山広域市 | 故郷 |
| 釜山アシアード主競技場 | 釜山・蓮堤区 | コンサート |
| 広安里ビーチ | 釜山・水営区 | 名所 |
| BTSバス停(注文津海岸) | 江原道・江陵市 | MV・撮影地 |
| 大邱(市) | 大邱広域市 | 故郷 |
| 光州(市) | 光州広域市 | 故郷 |
| 一山・高陽 | 京畿道・高陽市 | 故郷 |
| 仁川国際空港 | 仁川広域市 | 名所 |
| 南怡島(ナミソム) | 江原道・春川/京畿道・加平 | 名所 |
分類の内訳は、名所6・故郷4・コンサート3・公式2・MV撮影地1。この偏りがそのまま、下に書く3つのルールの結果になっている。
ルール1:私邸は載せない
最初に決めたのがこれで、データ定義のコメントにも「公開されている適切な場所のみ。私邸は載せない」と書いて固定してある。アプリの画面上部にも常時「公開されているファンの聖地です(私邸なし)」と表示している。ルールをコードのコメントと画面表示の両方に置いたのは、あとから誰かがスポットを追加するときに判断が揺れないようにするためだ。
このルールがいちばん強く効くのは「故郷」カテゴリだ。入っているのは釜山・大邱・光州・一山(高陽)の4件で、全部が市の単位である。座標も釜山なら北緯35.1796・東経129.0756という市の中心で、番地には降りていない。「〇〇出身」という公表済みの情報だけを地図にして、そこから先の特定はしない、という線をここで引いている。
その代わり、故郷カテゴリはページとして薄くなる。市に着いてもそれ自体では何もすることがない。大邱と光州について、説明文に「街として行く」以上のことを書けていないのはこの制約の結果で、無理に埋めるくらいなら薄いままにしてある。
ルール2:「公式が公開している場所」に限る
2つめの基準は「そこに行っていいと、公式の側が事実上言っているか」だ。ファンの間で言われているだけの場所は入れない。判断の実例を挙げる。
- HYBE本社(龍山)… 内部は非公開。だから説明文には外観撮影と1階ロビーのポップアップのことしか書いていない。「中に入れる」と読める書き方をしない。
- LINE FRIENDS ストア(弘大)… BT21を扱う公式ストアで、誰でも入れる。ここは迷わず載せられる典型例。
- 蚕室・高尺・釜山アシアード … 公演会場。行けるのはイベントがあるときだけなので、常設の観光地としては書かない。
- 注文津のバス停 … アルバム撮影のために作られたセットが、人気を受けて常設化された。「いま行っても実在する撮影地」という条件を満たす唯一の例。
MV・撮影地カテゴリが1件しかないのは、この基準の直接の結果だ。撮影地の多くは私有地であるか、セットが撤去されているか、そもそも場所が公表されていない。ファンサイトを辿れば候補は何十件も作れるが、それをやると1つめのルールと衝突する。数を増やすことより、載っている16件すべてが同じ基準を通っていることを優先した。
「グルメ」カテゴリが空のままなのも同じ理由による。飲食店は個人の私有事業で、公式が「ここに行っていい」と言った例がほぼ無い。分類だけ先に定義してデータを入れていないのは、基準を満たす店が出てきたときにすぐ足せるようにするためで、埋めるために基準を下げることはしていない。
ルール3:座標と出典を必ず持たせる
16件すべてが緯度経度を持っている。地図はネイティブアプリ側が flutter_map で OpenStreetMap のタイル(tile.openstreetmap.org)を読み、Web版は MapLibre GL JS を埋め込んで表示している。地図データを自前で描かず、出典が明確なタイルサービスに乗せるところまでをルールに含めた。
そのうえで、各スポットには座標とは別に英語の検索語を持たせている。たとえば注文津のバス停なら『BTS Bus Stop Jumunjin Beach Gangneung』で、これを Googleマップの検索URLに変換して開く。座標で直接ピンを立てず、あえて検索語で開いているのは、写真とストリートビューがGoogleマップ側に集まっているからだ。現地に行けない人が画面の中で見て回れるようにするには、座標より検索語のほうが役に立つ。
名前は日本語・英語・韓国語の3言語で持っている。注文津のバス停なら「BTSバス停(注文津海岸)」「BTS Bus Stop (Jumunjin Beach)」「BTS 버스정류장 (주문진 해변)」。これは翻訳のためというより、現地でタクシー運転手や店員に画面を見せて伝えるための実用装備として入れた。
16か所は1回では回れない
地域で割ると、ソウル7・釜山3・江陵1・大邱1・光州1・高陽1・仁川1・春川加平1になる。全国に散っているので、現実的にはまとまりで考えるほうがいい。データを並べたうえで妥当と考えている順番は次のとおり。
- 着いた場所がもう1件目。仁川国際空港は名所カテゴリに入れてある。ここからソウル7件へ。
- ソウル内は区で束ねる。HYBE本社とNソウルタワーはどちらも龍山区。LINE FRIENDSストアと弘大ストリートは同じ麻浦区で徒歩圏。景福宮は鍾路区。この3組で3日に割れる。
- 蚕室(松坡区)と高尺(九老区)はソウルの東端と西端で、間に何も無い。公演があるときだけ組み込む。
- 日帰りで足せるのが江陵・注文津のバス停と、南怡島(春川・加平)。どちらもソウルから日帰りの距離。
- 泊まりが要るのが釜山3件(アシアード・広安里・市内)。ここだけは独立した旅程になる。
一山(高陽)はソウルの隣接市なので地下鉄で行ける。大邱と光州は先に書いたとおり「市」であり、行き先を自分で決めないと現地でやることが無い。ここを正直に書かずに埋めると、地図としては見栄えがよくなるが、実際に行った人が損をする。
載せなかったもの
- 自宅・実家・通っていた学校・家族が営む店
- 「ここで見かけた」という目撃情報の場所
- 撮影に使われたがセットが撤去済み、または場所が非公表の撮影地
- 公式が場所を公表していない飲食店
この記事に関係するページ
記事で触れた機能はこちらから試せます。

