先に立場を書きます。私は旅行記録アプリ「ずぼ旅」の開発者で、行った国カウンターも私が作りました。カウンターは無料で、登録もいりません。ずぼ旅アプリはタイムラインのファイルを読み込まないので、このページの作業にアプリは要りません。
タイムラインをオンにしていたなら、行った国の一覧はもう手元にあります。パソコンで開けなくなっただけです。
いまのGoogleの日本語ヘルプ(パソコン版)には、「パソコン上の Google マップでタイムラインを利用できなくなります」とあります。タイムラインのデータを、端末から直接取るようになったためです。
2026年10月2日にヘルプで確かめた仕組みは、次のとおりです。
つまり、いまスマホにあるものが手元の全部です。自動削除の期間より前の旅は残っていません。機種変更で古い記録が見当たらないときは、「タイムライン」の雲のアイコンから、バックアップを「インポート」できるか確かめてください。
手順はGoogleの日本語ヘルプ(2026年10月2日確認)のとおりです。メニュー名は変わることがあります。
保存されるファイルは location-history.json です(ヘルプに記載)。Googleマップ(iOS版)は6.93以降が必要です。
英語版のヘルプでは「Settings → Location & Privacy → Export Timeline data」の順です。見つからないときは、「設定」の中で「タイムライン データをエクスポート」を探してください。
Googleマップのアプリではなく、端末の設定アプリから操作します。
ヘルプには保存されるファイル名の記載がないので、保存するときの名前を控えてください。Googleマップ(Android版)は11.106以降が必要で、Android Goの端末では使えません。
このファイルは、自宅や職場まで含む移動の記録です。メールや共有フォルダに置く前に、一度考えてください。
行った国カウンターを開き、書き出したファイルを入れます。
location-history.json を選びます。入れたあとの動きは、次のとおりです。
アップロード、会員登録、アクセス解析、Cookieはありません。ページを開いたあとにWi-Fiを切っても動くので、それが簡単な確かめ方です。コードはGitHubで公開しています(MITライセンス)。
タイムラインがスマホに移る前は、Google Takeout(Google データ エクスポート)でロケーション履歴を書き出せました。そのzipが残っていれば、いまのスマホにない古い年が入っているかもしれません。
Records.json:端末が記録した位置を1件ずつ持つファイルです。何年分も入り、大きくなりがちです。zipは先に解凍してください(zipのままでは読めません)。パソコンなら、解凍したロケーション履歴のフォルダを丸ごとドロップするか、「フォルダを選ぶ」で選びます。中の座標を探して読むので、ファイル名は問いません。スマホの書き出しと続けて入れれば、1つの一覧になります。
カウンターが探す座標の形は3つです。"latitudeE7": 356812000(Records.json など)、35.6812°, 139.7671°(Androidから書き出したファイル)、geo:35.6812,139.7671(iPhoneの location-history.json)。
import csv, re, sys
# Records.json("latitudeE7")、Androidから書き出したファイル("35.6812°, 139.7671°")、
# iPhoneの location-history.json("geo:35.6812,139.7671")の3つの形を拾う
POINT = re.compile(
r'"latitudeE7"\s*:\s*(-?\d+)\s*,\s*"longitudeE7"\s*:\s*(-?\d+)'
r'|(-?\d{1,2}\.\d+)(?:°|\\u00b0),\s*(-?\d{1,3}\.\d+)(?:°|\\u00b0)'
r'|geo:(-?\d{1,2}\.\d+),(-?\d{1,3}\.\d+)'
)
out = csv.writer(sys.stdout)
for path in sys.argv[1:]:
text = open(path, encoding="utf-8").read()
for m in POINT.finditer(text):
if m.group(1):
lat, lon = int(m.group(1)), int(m.group(2))
if lat > 900000000: lat -= 2**32 # 古い書き出しにある桁あふれの補正
if lon > 1800000000: lon -= 2**32
lat, lon = lat / 1e7, lon / 1e7
elif m.group(3):
lat, lon = float(m.group(3)), float(m.group(4))
else:
lat, lon = float(m.group(5)), float(m.group(6))
out.writerow([lat, lon])
python3 timeline_points.py location-history.json > coords.csv
出てくるのは緯度・経度のCSVだけで、日付も国の判定もありません。ファイルを丸ごと読むので、大きな Records.json では時間がかかります。
乗り継ぎで降りた空港の位置が残っていると、その国も一覧に出ます。1年だけ・数地点だけの国は見直して、行っていなければ結果の「国を足す・減らす」で外してください。
国境データの精度は1km前後で、国境のすぐそばの地点は隣の国になることがあります。浜辺や港、フェリーなど、海岸から少し外れた地点は約13kmまでなら近くの陸の国に寄せ、それより沖は数えません。
カウンターは「国連加盟193カ国+台湾」で数えます。地域を1つずつ数える人や団体もいて、正解は1つではありません。基準の違いは「行った国の数え方」に書きました。
タイムラインがオフだった時期、電源が切れていた旅、自動削除や機種変更で消えた期間は入っていません。その時期の写真を一緒に入れると、穴が埋まることがあります(「iPhoneの写真から、今まで行った国を調べる方法」)。
ここからは、自分のアプリの話です。
私が作っている「ずぼ旅」は、iPhoneの「大幅な位置情報の変更」を使い、アプリを開かなくても、行った国・都道府県・市区町村と日付を残します。写真の位置情報から、入れる前の旅も復元します。
ただし、ずぼ旅アプリはタイムラインのファイルを読み込みません。読めるのは、上の行った国カウンターだけです。
タイムラインで足りている人は、年に一度書き出して数えれば十分です。
見られません。Googleのヘルプによると、タイムラインのデータは端末から直接取得されるため、パソコンのGoogleマップでは利用できません。スマホのGoogleマップのアプリで見るか、スマホから書き出したファイルを使います。
iPhone・iPadのGoogleマップから書き出すと、location-history.json という名前になります(Googleのヘルプに記載)。Androidのヘルプにはファイル名の記載がありません。行った国カウンターは、拡張子が .json なら名前に関係なく読み取ります。
送られません。ファイルはブラウザの中だけで読み取られ、アップロードも会員登録もありません。ページを開いたあとに通信を切っても動きます。
使えます。zipを解凍してから、フォルダごと、またはファイルだけを入れてください。大きなファイルも少しずつ区切って読みます。
乗り継ぎの空港での位置が記録されていると、その国も一覧に出ます。国ごとに年と地点数が出るので、地点の少ない国を見直して、行っていない国は結果の「国を足す・減らす」から外してください。
読み込めません。タイムラインのファイルを読めるのは、無料の行った国カウンター(ブラウザのページ)だけです。ずぼ旅アプリは、入れたあとの移動と、写真の位置情報から旅を記録します。
このページについて。上の出典を2026年10月2日に読んで書きました。Googleはこのあたりのメニューをよく変えます。手順が手元の画面と違っていたら、shiori.sutudio@gmail.com までお知らせください。直して、日付を更新します。