LoginSignup
1
3

More than 1 year has passed since last update.

【pythonista】Google Map APIを使わずに座標を取得する方法

Posted at

きっかけ

GoogleMapのナビに業を煮やし
Yahooカーナビの検索能力に困惑していたため

他にもショートカットやPythonistaで作っている方がいましたが
イマイチ理解出来なかったので強引に座標データを取得する事を決意
(API使用料も払えないしね…)

いきなりですがコードです

#!python3

# ↓候補には上がりませんが最初からインストールされていました
from bs4 import BeautifulSoup

import urllib.request
import webbrowser
import appex

if not appex.is_running_extension():

    print('oh no!')

else:

    # グーグルマップの共有より短縮URLを取得
    src_url = appex.get_url()
    # 短縮URLより通常のURLを取得
    response = urllib.request.urlopen(src_url)
    # ↓よく分かんないけと参考サイトのをコピペ状態
    query = urllib.parse.parse_qs(response.url)

    # URLにftidの文字列が含まれていた場合
    if ('ftid' in query):

        # htmlを取得
        html = response.read()
        # ↓ここもよくわからないけど整形してるらしい
        root = BeautifulSoup(html,'html5lib')

        # html内に存在する@を起点に座標データを取得
        # 調べた限りでは2箇所に座標データが存在してましたが楽に取得できる方を設定
        (lat, lon) = str(root).split('@')[2].split('\\')[0].split(',')[0:2]

    # ftidの文字列がなかった場合
    else:

        # ↓参考サイトのをコピペかつ手抜き化
        (lat, lon) = query['https://www.google.com/maps?q'][0].split(',')

    # YahooカーナビへのURL(?)に座標データを設定  
    yahoo = 'yjcarnavi://navi/select?lat=%s&lon=%s' % (lat, lon)

    # Yahooカーナビ起動!
    webbrowser.open(yahoo)

書く事なし

コメントに書いたのでもう思い浮かびません
Pythonistaの設定などは他で調べて下さい(力尽きました)

参考サイト

ひとりぶろぐ:iOSのGoogleマップとYahoo!カーナビ等の地図アプリを連携させる方法

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3