概要

以下のようなGoogle Mapsの短縮URLから緯度経度を取得する機会がありました。

https://goo.gl/maps/aPxUgDJ9KP2FLFkN7

https://goo.gl/maps/aPxUgDJ9KP2FLFkN7

この時、2つの緯度経度が取得できたので、その備忘録です。

抽出方法

GPT-4から以下の回答が得られました。

-– 以下、回答 —

Google Mapsの短縮URL (goo.gl/maps/...) から直接緯度経度を抽出することはできません。しかし、この短縮URLを展開して元のURLを取得することで、そのURLから緯度経度を抽出することができます。

以下の手順で緯度経度を取得することができます:

  1. 短縮URLを展開します。
  2. 展開されたURLから緯度経度を抽出します。

以下はPythonでこれを実現する一例です:

iidulpmmerarppfltioo_nrrg#ril#mie=lttteefoaflo(tsnts"nlrr_prgcmehaeelUoer_halr:rt=tqaRnseutaeet_utLsptr=ctttpgle_eoulUh,uuseoslnrRr:rr:tnto=sn=Lelnn/_)sne.o/l_r.NrsnfNgafesoeelootrqtnsa=ono_ouaeprae.lmetocmtgo_sunha(lngtss(tl/_os_ercamfo.c.'htarggoh@.)polede(g,smetea[r/__(d\ofagus!e-ulPorh=r0poxolos-saUg(r3[9(tglst0'.)(Deh_2l]lJ_ou:o+o9urrc)nKrtla,)Pl_,t(2(ui[Furao\Lrlln-Fl)l'0k):o]-Nw97_."r]e+d)i'r,ecltosn=gF_aulrsle))

このコードは、短縮URLを展開して緯度経度を抽出するための基本的なものです。しかし、実際の使用環境や目的に応じて、エラーハンドリングや例外処理を追加することが推奨されます。

-– 回答、ここまで —

上記により、以下のURLに含まれる緯度経度(ここでは、28.3410487,129.9769402)を取得できました。

https://www.google.com/maps/place/鹿児島県大島郡喜界町大字伊砂/@28.3410487,129.9769402,3868m/data=!3m2!1e3!4b1!4m5!3m4!1s0x351f80a0620f4335:0x35d406a5040d7197!8m2!3d28.3439714!4d129.9838012?shorturl=1

しかし、この座標を指定すると、以下の場所が指定され、求めている座標からずれているようでした。

修正

以下のURLを確認すると、末尾にも!3d28.3439714!4d129.9838012という座標が見られました。

https://www.google.com/maps/place/鹿児島県大島郡喜界町大字伊砂/@28.3410487,129.9769402,3868m/data=!3m2!1e3!4b1!4m5!3m4!1s0x351f80a0620f4335:0x35d406a5040d7197!8m2!3d28.3439714!4d129.9838012?shorturl=1

そこで、先ほどプログラムについて、prefixとdelimiterを指定できるように修正しました。

iidulpmmerarppfltioo_nrrg#rilp#pmie=lttteeforaaflo(tsnitts"nlrr_prgntcmehaeelUoer_tehalr:rt=tqaRnseu(rtaeet_utLsptrln=ctttpgle_eouloUh,uuseoslnrnR=r:rr:tnto=sn=gLelnn/_)sne_r.o/l_r.Nru'snfNgafesoer{elootrqtnslpa=ono_ouaep)rrae.lmetoecmtgo_sunfha(lngtssi(tl/_os_expcamfo.c.}ahtarggoh(t.)polede[tg,smetea\er/__(d-rofagus!e0nulPorh=r-,poxolos9saUg(r3[.l(tglst0']o)(Deh_2l+nlJ_ou:o)go9urrc{_nKrtladu)Pl_,ter2(uillFuraoi)LrllnmFl,l'ik,o]tNpwe7pr_r"rer}efe(fid[ixi\x=r-=e0""c-!@t93"s.d,=]"F+,da)el'dls.eieflm)oiirmtmieatrte(r=p=r""e!,f4"id)x":=)re.escape(prefix),delimiter=re.escape(delimiter))

結果、28.3439714,129.9838012が取得できました。この座標を使用してみたところ、以下のように、より目的に近い座標にピンが立ちました。

まとめ

答えが一つに決まるものではありませんが、Google Mapsの短縮URLから緯度経度を取得するにあたり、参考になりましたら幸いです。