連続的な位置情報の取得
連続的な位置情報の取得はこんなかんじで書いてみた
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | startWatchGeo = -> navigator.geolocation.watchPosition( onSuccess, onError, enableHighAccuracy: true, timeout: 20000, maximumAge: 0 ) console.log "START WATCHING" $("#geoLocation").html("start watching...done") stopWatchGeo = (watch_id) -> navigator.geolocation.clearWatch(watch_id) console.log "STOP WATCHING" $("#geoLocation").html("stop watching...done") |
*maximumAgeで実質的に更新間隔の調整ができる。単位はミリセカンド
heroku
heroku+MongoHQへのアップ
whispering-atoll-9175.herokuapp.com/
*deviseとの相性かGemfileでruby ‘1.9.3’を指定しないとundefined method for []とかなんとかエラーが出た
以下は仕様
- メアドはダミー登録でもOK。でも変なアドレスを登録するとそこにパスワードとか送信しちゃうかも
- 位置情報は自分の情報しかみられない。他の人の位置情報はみられない
- メッセージも登録できるようにした。連続的な取得の場合もメッセージ欄に何か書いておけばそのまま全部の記録にメッセージが登録される。ランニング中とかそんなコメントをつけておくときに。
既知のバグ
- 登録した位置情報は下の一覧には表示されるけど、グーグルマップにはマーカーが表示されない。ブラウザをリロードする必要がある
- 位置情報の取得に失敗したときのメッセージが表示されない 止まってしまったらブラウザをリロードする必要がある
- 現在情報取得すると次に現在情報の取得ができないときがある
結果
携帯の実機で試したけど不満だった
GalaxySでは単独の位置情報の取得に1分以上、連続取得はできるけど20分くらいでバッテリーが切れた
wifiの初代iPadならすぐ取得できたから機種によるのかもしれない
1時間に1回とか15分に1回でいいんだけどな>maximumAgeの設定でできた!
*Galaxy SのGPSはどうも問題が多いらしいことがわかった