ずぼ旅

あなたは今まで
何カ国、行った?

指を折って数えて、たぶん一つ二つ抜ける。でも写真のほうはちゃんと覚えています。下に入れるだけで数えます。

写真やフォルダをここにドロップ

旅行の写真、カメラロールの書き出し、Google Takeout(Googleフォトの書き出し)のフォルダ、Googleマップのタイムラインの書き出し(Timeline.json)が使えます。Takeoutのzipは先に解凍してください。

まとめて選ぶには:写真を選ぶ画面で、1枚目に指を置いて横へすべらせ、そのまま下へ。下の端で指を止めておくと、画面が自動で流れて、どんどん選ばれます。

iPhoneでは「写真を選ぶ」から写真ライブラリで選び、「位置情報あり」になっていることを確認してください(最初からこの状態です)。一度に数百枚ずつが目安で、選ぶたびに地図に足されていきます(結果の下の「写真を追加」から)。ライブラリ全部をまとめて数えるならずぼ旅アプリのほうが早いです。Googleマップのタイムラインを書き出した場合は、「写真を選ぶ」→「ファイルを選択」で location-history.json を選んでください。

アップロードはしません。ファイルはブラウザの中だけで読み取られます。ページを開いたあとWi-Fiを切っても、そのまま動きます。

見本です(あなたの写真ではありません)
0
カ国

これを毎日やっているのが「ずぼ旅」です。

ずぼ旅は、この地図を勝手に最新にしておくiPhoneアプリです。チェックインも日記も要りません。スマホを持って出かけるだけで、行った国と都市が地図に残ります。今このページがやったのと同じように昔の写真も読み込めて、そこから先はずっと自動です。

アプリの画面です。カメラロールを取り込むと、行った国が数えられて地図が塗られます(9秒・音なし・くり返し再生)

App Storeで「ずぼ旅」を見る

無料ではじめられます・買い切りでサブスクなし・iPhone / iPad(iOS 17以上)・アカウント不要、サーバーには何も残りません

しくみ

写真
位置情報をオンにして撮った写真には、EXIFというメタデータにGPSの座標が入っています。このページが読むのはJPEGの先頭部分、HEICのメタデータ部分、動画のヘッダーだけで、写っている中身は見ません。読み取った座標を国境のデータと照らし合わせています。
Google Takeoutとタイムライン
Googleフォトの書き出しでは、写真ごとに小さなJSONファイルが横にあり、そこに位置が入っています。Googleマップのタイムラインの書き出し(スマホ内保存になってからの Timeline.json、以前の Records.json と Semantic Location History)は少しずつ区切って読むので、大きなファイルでも大丈夫です。なお、ずぼ旅アプリ自体はこれらのファイルを読み込みません。読めるのはこのページだけです。
何を1カ国と数えるか
見出しの数は「国連加盟193カ国+台湾」で数えています。バチカンやコソボのように国連に加盟していない国や、香港・プエルトリコ・グリーンランドなどの地域は、下に名前を出して地図にも塗りますが、数には入れていません(ずぼ旅アプリはこうした地域も1つずつ数えるので、アプリの国数のほうが多くなることがあります)。国境は Natural Earth の1:50m(小さな国は1:10m)なので、国境から1km前後で撮った写真は隣の国と判定されることがあります。
プライバシー
ファイルも座標も、あなたのパソコンやスマホの外には出ません。ページが読み込むのは自分自身のHTMLとスクリプト・フォント・地図データ・紹介動画だけで、どれもページを開いてから1〜2秒で読み込み終わる(共有のリンクから開いたときは、紹介動画はそこまでスクロールしたときに読み込む)ので、そのあとは通信を切っても動きます。アクセス解析もCookieもありません。
共有のリンク
共有されるリンクは zubotabi-counter.pages.dev/c/37/#v=1.… のような形です。リンクのパスに入っているのは国の数だけなので、このページを配信しているCloudflareには、リンクが開かれたときやプレビューが作られたときに、その数だけが届きます。国の一覧は # のうしろにあり、この部分は、ブラウザがどのサーバーにも送りません(私たちのサーバーにも)。一覧はページがブラウザの中で読み取ります。リンクを持っている人は誰でも一覧を読めます。送るのに使ったアプリも同じで、Xに投稿するを押すと、Xにはリンク全体が渡ります。国を手で選ぶときも、写真から数えるときと同じ194で数えます。