これはなに?
GeoGuessr の結果ページ (例: https://www.geoguessr.com/results/siZRNvLAb3YboNtu ) でクリックすることで、各ラウンドの結果を以下のような形式でクリップボードにコピーするブックマークレットです。集計などにお役立てください。
2024-08-09 14:54:25 ナイジェリア 4226 250.7 km https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=6.272190093994141,8.01449203491211
2024-08-09 14:57:44 グアテマラ 4998 682.3 m https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=14.609286308288574,-90.65435791015625
2024-08-09 15:00:50 ラトビア 4998 579.8 m https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=55.868247985839844,26.508747100830078
2024-08-09 15:03:53 ウクライナ 3706 446.7 km https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=49.94998550415039,36.34684371948242
2024-08-09 15:07:01 フィンランド 4194 262.3 km https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=68.14797973632812,27.095720291137695
準備
Chrome の場合、ブックマークバーを右クリック→「ページを追加…」から、任意の名前を設定し、URL 欄にブックマークレットをまるっと貼り付けてください。
ブックマークレット
javascript:(function() {
try {
var element = document.querySelector('script#__NEXT_DATA__').innerHTML;
var parsedData;
try {
parsedData = JSON.parse(element);
} catch (e) {
console.error('JSONの解析に失敗しました: ', e);
alert('JSONの解析に失敗しました: ' + e.message);
return;
}
var data = parsedData["props"]["pageProps"]["gamePlayedByCurrentUser"];
var player = data["player"];
var rounds = data["rounds"];
var countryCodes = {
"ad": "アンドラ", "ae": "アラブ首長国連邦", "af": "アフガニスタン",
"ag": "アンティグア・バーブーダ", "ai": "アンギラ", "al": "アルバニア",
"am": "アルメニア", "ao": "アンゴラ", "aq": "南極", "ar": "アルゼンチン",
"as": "アメリカ領サモア", "at": "オーストリア", "au": "オーストラリア",
"aw": "アルバ", "ax": "オーランド諸島", "az": "アゼルバイジャン",
"ba": "ボスニア・ヘルツェゴビナ", "bb": "バルバドス", "bd": "バングラデシュ",
"be": "ベルギー", "bf": "ブルキナファソ", "bg": "ブルガリア",
"bh": "バーレーン", "bi": "ブルンジ", "bj": "ベナン", "bl": "サン・バルテルミー",
"bm": "バミューダ諸島", "bn": "ブルネイ・ダルサラーム", "bo": "ボリビア",
"bq": "ボネール、シント・ユースタティウスおよびサバ", "br": "ブラジル",
"bs": "バハマ", "bt": "ブータン", "bv": "ブーベ島", "bw": "ボツワナ",
"by": "ベラルーシ", "bz": "ベリーズ", "ca": "カナダ", "cc": "ココス(キーリング)諸島",
"cd": "コンゴ民主共和国", "cf": "中央アフリカ共和国", "cg": "コンゴ共和国",
"ch": "スイス", "ci": "コートジボワール", "ck": "クック諸島", "cl": "チリ",
"cm": "カメルーン", "cn": "中国", "co": "コロンビア", "cr": "コスタリカ",
"cu": "キューバ", "cv": "カーボベルデ", "cw": "キュラソー",
"cx": "オーストラリア クリスマス島", "cy": "キプロス", "cz": "チェコ",
"de": "ドイツ", "dj": "ジブチ", "dk": "デンマーク", "dm": "ドミニカ国",
"do": "ドミニカ共和国", "dz": "アルジェリア", "ec": "エクアドル",
"ee": "エストニア", "eg": "エジプト", "eh": "西サハラ", "er": "エリトリア",
"es": "スペイン", "et": "エチオピア", "fi": "フィンランド", "fj": "フィジー",
"fk": "フォークランド諸島", "fm": "ミクロネシア", "fo": "フェロー諸島",
"fr": "フランス", "ga": "ガボン", "gb": "イギリス", "gd": "グレナダ",
"ge": "ジョージア", "gf": "フランス領ギアナ", "gg": "ガーンジー",
"gh": "ガーナ", "gi": "ジブラルタル", "gl": "グリーンランド", "gm": "ガンビア",
"gn": "ギニア", "gp": "グアドループ", "gq": "赤道ギニア", "gr": "ギリシャ",
"gt": "グアテマラ", "gu": "グアム", "gw": "ギニアビサウ", "gy": "ガイアナ",
"hk": "香港", "hm": "ハード島とマクドナルド諸島", "hn": "ホンジュラス",
"hr": "クロアチア", "ht": "ハイチ", "hu": "ハンガリー", "id": "インドネシア",
"ie": "アイルランド", "il": "イスラエル", "im": "マン島", "in": "インド",
"io": "英領インド洋地域", "iq": "イラク", "ir": "イラン", "is": "アイスランド",
"it": "イタリア", "je": "ジャージー", "jm": "ジャマイカ", "jo": "ヨルダン",
"jp": "日本", "ke": "ケニア", "kg": "キルギス", "kh": "カンボジア",
"ki": "キリバス", "km": "コモロ", "kn": "セントクリストファー・ネイビス",
"kp": "北朝鮮", "kr": "韓国", "kw": "クウェート", "ky": "ケイマン諸島",
"kz": "カザフスタン", "la": "ラオス", "lb": "レバノン", "lc": "セントルシア",
"li": "リヒテンシュタイン", "lk": "スリランカ", "lr": "リベリア",
"ls": "レソト", "lt": "リトアニア", "lu": "ルクセンブルク", "lv": "ラトビア",
"ly": "リビア", "ma": "モロッコ", "mc": "モナコ", "md": "モルドバ",
"me": "モンテネグロ", "mf": "サン・マルタン(フランス領)",
"mg": "マダガスカル", "mh": "マーシャル諸島", "mk": "北マケドニア",
"ml": "マリ", "mm": "ミャンマー", "mn": "モンゴル", "mo": "マカオ",
"mp": "北マリアナ諸島", "mq": "マルティニーク", "mr": "モーリタニア",
"ms": "モントセラト", "mt": "マルタ", "mu": "モーリシャス",
"mv": "モルディブ", "mw": "マラウイ", "mx": "メキシコ", "my": "マレーシア",
"mz": "モザンビーク", "na": "ナミビア", "nc": "ニューカレドニア",
"ne": "ニジェール", "nf": "ノーフォーク島", "ng": "ナイジェリア",
"ni": "ニカラグア", "nl": "オランダ", "no": "ノルウェー", "np": "ネパール",
"nr": "ナウル", "nu": "ニウエ", "nz": "ニュージーランド", "om": "オマーン",
"pa": "パナマ", "pe": "ペルー", "pf": "フランス領ポリネシア",
"pg": "パプアニューギニア", "ph": "フィリピン", "pk": "パキスタン",
"pl": "ポーランド", "pm": "サンピエール島・ミクロン島", "pn": "ピトケアン諸島",
"pr": "プエルトリコ", "ps": "パレスチナ", "pt": "ポルトガル",
"pw": "パラオ", "py": "パラグアイ", "qa": "カタール", "re": "レユニオン",
"ro": "ルーマニア", "rs": "セルビア", "ru": "ロシア", "rw": "ルワンダ",
"sa": "サウジアラビア", "sb": "ソロモン諸島", "sc": "セーシェル",
"sd": "スーダン", "se": "スウェーデン", "sg": "シンガポール",
"sh": "セントヘレナ", "si": "スロベニア", "sj": "スバールバル諸島およびヤンマイエン島",
"sk": "スロバキア", "sl": "シエラレオネ", "sm": "サンマリノ",
"sn": "セネガル", "so": "ソマリア", "sr": "スリナム", "ss": "南スーダン",
"st": "サントメ・プリンシペ", "sv": "エルサルバドル", "sx": "シント・マールテン",
"sy": "シリア", "sz": "エスワティニ", "tc": "タークス・カイコス諸島",
"td": "チャド", "tf": "フランス領南方・南極地域", "tg": "トーゴ",
"th": "タイ", "tj": "タジキスタン", "tk": "トケラウ", "tl": "東ティモール",
"tm": "トルクメニスタン", "tn": "チュニジア", "to": "トンガ",
"tr": "トルコ", "tt": "トリニダード・トバゴ", "tv": "ツバル", "tw": "台湾",
"tz": "タンザニア", "ua": "ウクライナ", "ug": "ウガンダ",
"um": "合衆国領有小離島", "us": "アメリカ合衆国", "uy": "ウルグアイ",
"uz": "ウズベキスタン", "va": "バチカン市国",
"vc": "セントビンセントおよびグレナディーン諸島", "ve": "ベネズエラ",
"vg": "イギリス領ヴァージン諸島", "vi": "アメリカ領ヴァージン諸島",
"vn": "ベトナム", "vu": "バヌアツ", "wf": "ウォリス・フツナ", "ws": "サモア",
"ye": "イエメン", "yt": "マヨット", "za": "南アフリカ", "zm": "ザンビア",
"zw": "ジンバブエ"
};
var formatUnixTimestamp = function(timestamp) {
var date = new Date(timestamp);
var formattedDate = date.toISOString().split('T')[0];
var formattedTime = date.toTimeString().split(' ')[0];
return formattedDate + ' ' + formattedTime;
};
var output = rounds.map(function(round, index) {
var latitude = round["lat"];
var longitude = round["lng"];
var area = countryCodes[round["streakLocationCode"]];
var guess = player["guesses"][index];
var distance = guess["distance"]["meters"]["amount"] + " " + guess["distance"]["meters"]["unit"];
var startTime = formatUnixTimestamp(round["startTime"]);
var point = guess["roundScoreInPoints"];
var correctPoint = "https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=" + latitude + "," + longitude;
return startTime + "\t" + area + "\t" + point + "\t" + distance + "\t" + correctPoint;
}).join("\n");
navigator.clipboard.writeText(output).then(function() {
alert('データをクリップボードにコピーしました。');
}, function(err) {
alert('クリップボードへのコピーに失敗しました。エラー: ' + err);
});
} catch (e) {
alert('エラーが発生しました: ' + e.message);
}
})();
注意事項
- GeoGuessr の仕様が変わると使えなくなる場合があります。
- 失敗するとき、リロードしてから再度試すとうまくいく場合があります。
コメント
コメントはまだありません。
コメントには GitHub のアカウントが必要です。
コメントを書く