ログってなんぼ

日々のメモです

bashでGoogleマップのURLから緯度と経度を正規表現で得る

Googleマップで検索した場所のURLからbashで緯度と経度を抽出したのでメモっときます。

場所

f:id:Okisanjp:20160615185025p:plain

ブラウザに表示されているURL

https://www.google.co.jp/maps/place/%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0%E3%82%AB%E3%83%95%E3%82%A7/@35.6991395,139.7707838,17z/data=!3m1!4b1!4m5!3m4!1s0x60188ea7d9f2538f:0x11e8e2fa1205f80b!8m2!3d35.6991395!4d139.7729725

一番後ろの方のdata=以降の部分にいろいろな情報が入ってるみたいですがピンの立っているところの正確な緯度経度もここにあります

ちなみに@35.6991395,139.7707838,17zの部分は画面の中心とズームかな。ピンの場所ではない模様。

コード

#!/bin/bash

GUNDAM_CAFE="https://www.google.co.jp/maps/place/%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0%E3%82%AB%E3%83%95%E3%82%A7/@35.6991395,139.7707838,17z/data=!3m1!4b1!4m5!3m4!1s0x60188ea7d9f2538f:0x11e8e2fa1205f80b!8m2!3d35.6991395!4d139.7729725"
[[ "$GUNDAM_CAFE" =~ !4d([0-9.]+)$ ]]
LONGITUDE=${BASH_REMATCH[1]}
[[ "$GUNDAM_CAFE" =~ !3d([0-9.]+)! ]]
LATITUDE=${BASH_REMATCH[1]}
echo $LONGITUDE
echo $LATITUDE

結果

$ sh ./googlemapexp.sh
139.7729725
35.6991395

@35.6991395,139.7707838,17zの部分をマッチさせたいなら

[[ "$GUNDAM_CAFE" =~ \/@([0-9.]+),([0-9.]+),([0-9.]+z)\/ ]]
LONGITUDE=${BASH_REMATCH[2]}
LATITUDE=${BASH_REMATCH[1]}
echo $LONGITUDE
echo $LATITUDE

こんな感じか

$ sh ./googlemapexp.sh
139.7707838
35.6991395