pythonプログラムでandroidからgooglemapアプリを立ち上げる
前回qpython androidhelperモジュールを使いスマホのブラウザを開くという記事を書いた。Qpythonに標準でインストールされているandroidhelperモジュールを使う事によって、ブラウザオープンが実現できる。
Androidで「グーグルマップ」のURLを開くと、自動でグーグルマップのアプリが起動するようになっている。
pythonからgooglemapを運転モードで立ち上げる
googlemapを開くサンプルコード
# sqlite3、androidhelperモジュールの読み込み import sqlite3, androidhelper droid = androidhelper.Android() # データベースに接続 conn = sqlite3.connect("database.sqlite") # カーソルオブジェクトの作成 c = conn.cursor() # 名前検索 username = input("where name?: ") print('\n') # 空行 # sql select = "select * from users where name = '%s'" % username address = "" # 検索した名前からレコードを取得 for row in c.execute(select): address = row[2] break; input("openbrowser? (please enter): ") droid.view('https://www.google.com/maps/search/' + address) # データベースの切断 conn.close()
このコードは最初に紹介した記事にも掲載している。このコードで実際にgooglemapを立ち上げているのは、26行目となる。
droid.view(‘https://www.google.com/maps/search/’ + address)
droid変数で中身はandroidhelper.Android()になっている。そのため、必ずプログラムの先頭で androidhelper をimportしておく必要がある。
問題なのはこの場合はグーグルマップが「通常モード」で立ち上がるということだ。それでは運転モードで立ち上げるにはどうしたらいいのだろうか・・・その方法をみていこう
グーグルマップを運転モードで立ち上げるには?
グーグルマップを運転モードで立ち上げるには url を以下のように書き換えるとよい
- 通常モード → droid.view(‘https://www.google.com/maps/search/’ + address)
- 運転モード → droid.view(‘”https://www.google.com/maps/dir/api=1&travelmode=driving&dir_action=navigate&destination=’ + address)
このように書きかえることによってグーグルマップを運転モードで立ち上げることができる。
グーグルマップ 運転モードの設定を行う
グーグルマップは「運転モード」のときは設定を行えるようになっている。今回設定したい内容は以下だ。
- 交通状況を表示する
- ガイタンスの音量
- 高速道路を使わない
- 有料道路を使わない
グーグルマップアプリのバージョンアップによって、この情報は古くなる可能性はあるがとりあえず書いておく。
運転モードの設定
まず交通状況を表示するには次のようにする。まずグーグルマップを「運転モード」にして、ハンバーガーメニューをタップすると、「交通状況」というものがあるのでこれにチェックをいれる。
次に残りの設定を行いたいので、同ハンバーガーメニューの「設定」をタップする。ガイタンスの音量と余計な機能を使わないようにスライドバーで設定する。
グーグルマップの「交通情報」見方
運転モードの設定で「交通状況を表示する」にした場合、交通情報が表示される。
「交通情報」の見方は以下のとおりだ。
- 緑色 → 渋滞は発生してない
- 黄色 → やや渋滞している
- 赤色 → 渋滞している
運転モードのデメリット
運転モードにすると当然ながら「通信量」が増えることになると思われる。電話会社との契約でデータ通信量を適切に契約していないとすぐに容量オーバーになる可能性がある。また上記のpythonプログラムを紹介したが、ドライブモードでurlを開くと少し時間がかかる。(実際にはグーグルマップアプリがたちあがったあと、次に運転モードに移行するイメージだ)
欲を言えば、こっちは渋滞してないので「この道をいってください」とロボットが提案してほしいものだ。もうその時代はとっくにきているはずだが、技術をひたかくしにして物を売りつけようとする。こういうのはみんなと共有すべきだと思う。という妄想で終了します。
コメント