GeolocationAPIのgetCurrentPositionは精度が悪い : してログ

GeolocationAPIのgetCurrentPositionは精度が悪い

GPSGoogleMaps 20131011

GeolocationAPI で検索して出てくるサンプルで多いのが、getCurrentPosition を使った一発取得のものです。しかし、実際これで構築してみると位置情報の精度が悪く(特に Android 系は)使い物になりません。これは、初回に返してくる位置情報の精度が悪いためのようで、enableHighAccuracy を true に指定してもあまり改善しないようです。

実際に GeolocationAPI を使ってアプリケーションを構築する際は、watchPosition を使って緯度経度の取得を繰り返し、精度が落ち着くのを待ってから利用するようにするのが良いです。何を以て落ち着いたと判断するかは悩むところですが、「十分な精度になったらボタンを押して下さい」などとサイト利用者に委ねるか、緯度経度の誤差が 10m を下回ったときに自動投稿する、あるいは5回目の取得時の緯度経度を採用するなどが考えられます。

解説サイトはたくさんありますが、マニュアル的なものしかなく、実装する際は注意が必要です。

  • getCurrentPosition が返す位置情報は精度が悪いことが多い
  • enableHighAccuracy は効いているかあやしい
実装例:watchPosition
GeolocationAPI watchPosition サンプル(Googleマップ版)
0 件のコメント
名前:
コメント: