Android端末から標高を取得するには

5,115 views
Skip to first unread message

W少年

unread,
Jul 31, 2010, 9:19:42 AM7/31/10
to 日本Androidの会
Android端末のGPSを使って緯度、経度だけではなく標高も取得するにはどのようにコーディングしたらいいですか。
使っている端末はIS01ですが、IS01で標高を取得することは可能ですか。
それ以外の端末で標高を取得することは可能ですか。
Google Gearsを介したJavaScriptによる実装と純粋にアプリとして実装する場合のJAVAによる実装の両方のやり方について教えて
いただければ幸いです。
お手数をおかけしますがよろしくお願いします。

Akinori Matsudo

unread,
Jul 31, 2010, 9:54:10 AM7/31/10
to android-g...@googlegroups.com
普通に「android 標高」でググったら
http://www.adakoda.com/android/000125.html
が出てきました。上記ページはJavaによる実装ですが、

別の検索ワード「google gears 標高 取得」で見てみたら、
http://convivial-web.com/blog/2008/10/geolocation_api.html
がヒット。上記ページはGeolocation APIを使うサンプルみたいなものがありました。

実際どうなのかについては保証いたしかねます。

ご参考まで。

W少年

unread,
Jul 31, 2010, 11:03:10 AM7/31/10
to 日本Androidの会
回答ありがとうございます。
私のサイトでGoogle Gearsを使ったサンプルはこちらです。
http://wshounen.la.coocan.jp/mobile/fuji3.php?guid=ON
ログファイルを見るとiPhoneでは標高が-40になりAndroidではNaNになるという事象が多かったです。
紹介していただいたサンプルでもGoogle Gearsからは標高を取得していないので無理なのでしょうか。

magpad

unread,
Jul 31, 2010, 8:25:38 PM7/31/10
to 日本Androidの会
こんにちは

端末から標高を取得する方の話ですが、↓みたいな感じで使ってます。
定期的に位置情報を取得する自前のServiceクラス(TrackingService)から、位置変更があった場合に緯度・経度・高度・日時をデー
タベース(dbHelper)へinsertする処理です。
(手持ちはADP1+1.6/2.1ですが、Xperiaだとかでも取れてるっぽいです)

public class TrackingService extends Service implements
LocationListener {
...
@Override
public void onLocationChanged(Location location) {
dbHelper.insertLocation(
location.getLatitude(),
location.getLongitude(),
location.getAltitude(),
(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date())
);
}
...

エーアイサービス 徳山和宏

unread,
Aug 1, 2010, 4:05:02 AM8/1/10
to android-g...@googlegroups.com
こんにちは。徳山です。

そろそろ、センサー情報取得(GPS含む)アプリをAndroid Marketに出す準備してまして、何かとタイムリーだったので調べてみました。

純粋にアプリの方の場合です。Gearはよくわかっていません。

標高を取得する最小限のコードです。
これは最新の(最後に得られた)locationを得る方法です。

なお、位置情報が変わった際に随時取得する方法は、
すでに回答されている方の方法でいけると思います。
---
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Log.d("Altitude",location.getAltitude());
---

当方、アプリの公開に向けて、数週間のテスト期間を設けて動作確認をしました。

HT-03A,IS01で動作確認していますが、GPSの取得精度、値が違います。
何かコーディングミスかと思いましたが、そうではなさそうです。

Xperia、Desire、LYNXは持っていませんので、確認できていません。


HT-03A、IS01に限っていいますと、GPSの精度は全然違います。

屋内に端末を置いたときの測位性能は顕著で、
HT-03Aが全然取れない一方、IS01はさくっと取得できたりしています。

・・・不思議がいっぱいです。

話はそれますが、GPSで測位ができないときの対処は必要です。
何分かかっても測位が終わらない場合の対策をしてないと、
アプリがそのまま固まったり、期待しない動作をします。

ActivityでGPSを使う場合は、
ネットや書籍にサンプルソースが載ってますので、
求める仕様に近いものをベースにつくってみるとわかりやすいです。

では。


2010年7月31日22:19 W少年 <w-sh...@nifty.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

Lewske Wada

unread,
Jul 31, 2010, 9:32:40 AM7/31/10
to android-g...@googlegroups.com
W少年 wrote :
> Android端末のGPSを使って緯度、経度だけではなく標高も取得するにはどのように

圧力式の高度計でもつけないと無理じゃないですか.

Cheers,
Lewske "Ryu" Wada
Web: http://run.sh/
Email: r...@run.sh
ICQ: 348990359

W少年

unread,
Aug 2, 2010, 11:43:03 AM8/2/10
to 日本Androidの会
皆様、いろいろ調べていただきありがとうございました。
月が変わったので早速自分のIS01でテストしてみたところ、何と標高は取得できていました。
ただし、建物の中やベランダだと標高が露骨に違います。
私の家は郊外の高層マンションなので家の近くの屋外は標高、緯度、経度ともに申し分ない精度でした。
渋谷駅前では測位が一瞬ではなかったため場所をチェックしたら玉電の前で測位したのにセンター街のむこうをさしていて標高は出鱈目でした。
電車の中ではかなり正確ですが一度位置情報の取得に失敗すると端末を再起動しない限り失敗し続けます。
建物の中ではかなり苦手なようで、いったん外へ出ないと測位が終了しません。
測位している間はずっとGPSを待機しているので30秒または60秒たったら強制終了しないといつ終わるか分かりません。
大黒大橋などの陸地から離れた橋の上や地下街や展望台や山間部などのデータも気になりますが立ち寄る機会があれば調べてみたいです。

田代透

unread,
Aug 2, 2010, 12:04:52 PM8/2/10
to android-g...@googlegroups.com

GPSの基本原理として4つの衛星からの情報が必要で3つしかとれない場合には疑似大地を利用して座標を算定しているようです。この場合高度は無意味です。
あと、民間用のGPSは、精度は10m位しかありません。
開けたところで試してみるとよいかもです

2010/08/03 0:43 "W少年" <w-sh...@nifty.com>:


--

このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。

このグループに投稿するには、android-g...@googlegroups.com...

Reply all
Reply to author
Forward
0 new messages