Android × GPSセミナー に参加してきました。
ざっくりと内容のリマインドをかねて報告させていただきます。
※勝手に参照リンクの追加等しています。
■基調講演 GeoHashについて
geohashとは、何文字かの文字列を元に経度・緯度を算出する方法で、
文字列の長さによって、精度が異なり、
文字列が少ない場合には大体の範囲を示す。
利用の方法としては、範囲を指定できるので
データベースから取得をする際に、
例えば、範囲が1km以内の場合には、
その1km以内に含まれている可能性のある範囲のデータのみを抽出する事ができる。
□□□
□■□
□□□
上記のように現在値の周りのデータを取得して、
その中のデータのみに対して1km以内に含まれているかを判別する。
CPUの節約につながるらしい。
アイドリと言うアプリで使っているので確認してみてとの事
※titanium mobileで作成されています(jsです。)
位置の情報の取得にはbloom filterを用いる場合もあるようです。(ググレ。とのことでした。)
■第1部 AndroidMaps+GPSを利用したトラッキングアプリ開発
位置情報取得の場合にサービスを利用している。
サービスとは
まぁ、いろいろ説明してくれたのですが、資料をいただけなかったので、下記のような事の説明でした。
ドコモでは基地局位置測位を提供してくれるようになったので、
GPS、NETWORKのみでなく、そのデータも取り込むようにしたいとのこと。
サービスコンテンツに関しては、常に裏で動作する関係で、
Notificationをするのが親切な設計である。
Notification
ステータスバーに通知
MapActivityを使う場合に、2つ以上のMapActivityを用いる場合には、別プロセスにする必要がある。
(個人的には、そもそも2つ使わない設計にすればいいのでは。。)
位置情報に関しては、いくつかのデータであれば問題ないのだが、
たとえば、トラッキングを何十、何百取得した場合に膨大な情報量になってしまう。
エンコード化ポリラインを使えば、データを縮小できる。約1/10
google maps apiのエンコード化ポリラインについて
また、KMLと言う形式を良く利用するらしい
取得されるGPSデータに関しては、
割愛対象:速度を取得して、異常な速度を出した場合。(1分で10km先とか。)
あとはgetAccuracyで判断している。
正確性においては、networkは切り捨ててしまった方が無難??
■第2部 Javaエンジニアが作った初めてのAndroidアプリ『あらなび! ~Alert navi~』
わりと、仕様の話が多かった気が。。
取得の際に10秒動かす。他のデータが取れたとしても、10秒は動かして精度の高い値を取得しようと
試みる。それ以上はユーザーの負荷になるので利用はしないらしい。
■第3部 ここに困った。Mapview実装事例と、トラブル対応策
nerworkで取得して、取得できたら場所をある程度提示して、その後に、GPSで取得して取得できたら、そちらに切り替える。
また、OS関係/Android – 神嶋教授の独白のAndroidのソース本体の取得の項にあるようにソースコードを取得して、
android sdkの中にいれておくとf3で関数のクラスファイルを参照できるので、すごい楽だよ。との事でした。
■懇親会memo
・収益のモデルとしては、まだ成り立ってない。
・admobとかはやはりクリックされるというより誤クリックを促すしかない。
・GPSは時期が少し早いかもしれない。
・下記の記事のgetBestProviderのdesireの不具合は起こってはないと思う。とりあえずエラーの報告はないよ。(もしかすると、海外版のdesireの不具合で国内は問題ないのかも。記事の書かれた日からみてもその可能性が高そうですね。)
との事でした。割と、初級者向けの講演だったので、ちょうどよかった印象でした。
何か違う部分などあればご指摘いただければと思います。