Skip to content

Latest commit

 

History

History
39 lines (27 loc) · 1.53 KB

README.md

File metadata and controls

39 lines (27 loc) · 1.53 KB

AccuratePosition

  1. navigator.geolocation.getCurrentPosition を使うと精度が低くても successCallback が呼ばれる
  2. じゃあ navigator.geolocation.watchPosition を使えばええやん
  3. でもそれだと一定以上の精度にならないときは止まってしまう
  4. 一定以上の精度にならないならタイムアウトを設けてできるだけいい精度で取得するようにしよう

ということが簡単にできます。

使用例

getAccuratePosition(
    function(position){
        alert('成功');
    },
    function(error){
        alert('失敗:' + error.message + '(' + error.code + ')');
    },
    {limit:200, timeout:4000}
);

動作としては「精度がlimitより良くなるまで取得し続けるけれど、timeout以上かかるようならやめてそれなりの精度の位置情報を取得する」です。 navigator.geolocation.getCurrentPosition とやってるところを getAccuratePosition に変えるだけで大丈夫そうです。

オプション

使えるオプションは、

  • limit: 許される誤差(m)。省略時は100。
  • timeout: 待てる時間(ms)。省略時は無限。

のみです。

参考文献