AndroidFacadeAPI

位置情報

このエントリーをはてなブックマークに追加
最終更新日 2016-12-31

次に示すのは、位置情報をコンソールに表示する例です。

import android
import time
droid = android.Android()
droid.startLocating(60000, 10)
time.sleep(60)
print droid.readLocation().result
droid.stopLocating()

startLocating() を呼び出すと、位置情報の取得を開始します。 startLocating() の引数は順に、位置情報を取得するまでの最少時間(ミリ秒)、位置情報を取得するまでの最少距離(メートル)で、すべて省略可能です。

次に、sleep() を呼び出して適当な時間待機し、 readLocation() を呼び出して位置情報を読み込みます。 readLocation() は、ロケーションプロバイダ( "gps" や "network" )ごとに以下の値を返します。

説明
provider ロケーションプロバイダ名
accuracy 精度
altitude 高度
latitude 緯度
longitude 経度
speed デバイスの速度(メートル/秒)
time 時間

最後に stopLocating() を呼び出して位置情報の取得を停止します。

なお、getLastKnownLocation() を呼び出すと直近の位置情報を取得できます。

import android
droid = android.Android()
print droid.getLastKnownLocation().result

location イベント

startLocating() を呼び出すと、位置情報を取得した際に "location" イベントが発生します。 次に示すのは、"location" イベントを利用して位置情報を表示する例です。

import android
droid = android.Android()
droid.startLocating()
event = droid.eventWaitFor("location")
print event.result["data"]
droid.stopLocating()

住所情報

geocode() を呼び出すと緯度および経度から住所情報のリストを取得することができます。 次に示すのは、緯度 35.658604 および 経度 139.745407 の住所情報を表示する例です。

import android
import time
droid = android.Android()
address = droid.geocode(35.658604, 139.745407).result
time.sleep(10)
if address != []:
    print address[0]["country_code"].encode("utf-8")
    print address[0]["country_name"].encode("utf-8")
    print address[0]["admin_area"].encode("utf-8")
    print address[0]["locality"].encode("utf-8")
    print address[0]["thoroughfare"].encode("utf-8")
    print address[0]["feature_name"].encode("utf-8")

geocode() の引数は順に、緯度、経度、リストの最大数で、第3引数は省略可能です。 第3引数を省略した場合は 1 件の住所情報を取得します。 geocode() は以下の値を返します。

説明
country_code 国コード
country_name 国名
admin_area 都道府県
locality 市区町村
thoroughfare 丁目
feature_name 番地