Hatena::Groupsubtech

冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

 | 

Oct 07, 2009 (Wed)

Android の geolocation で GPS を使う方法 14:54 はてなブックマーク - Android の geolocation で GPS を使う方法 - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。

Android には Gears が入っていて、gears の geolocation API が使えることは使えるのだけど、GPSをちゃんと使う方法がなかなかわからなかったのでメモ (素朴に使うと WiFi + IP アドレス?しか使わないっぽくて、とれないことが多い)

var geo = navigator.geolocation || google.gears.factory.create('beta.geolocation');

geo.getCurrentPosition(
        function (pos) {
                alert([pos.coords.latitude, pos.coords.longitude].join(','));
        },
        function (e) {
                alert(e.message);
        },
        {
                enableHighAccuracy: true
        }
);

enableHighAccuracy が true じゃないと GPS 情報を使わないようだ。このままだと Google の Geoloation API をまだ叩きにいく。さらに gearsLocationProviderUrls: [] とか指定すれば、純粋にGPSだけの情報がとれるようだ。

        {
                enableHighAccuracy: true,
                gearsLocationProviderUrls: []
        }

ただ、なんか GPS のタイムアウト時間が短いので、前もって別のアプリケーションで GPS fix させてからじゃないとダメな気がする。要検証。watchPosition でとれるまで待つという方法もあるかもしれない

追加検証してみたけど、ちゃんと座標を取得したいなら、watchPosition でとれるまで待って、clearWatch するのがよさそう (キャンセルボタンもつけて)。

watchPosition ならとれるまで試行できる。

gearsLocationProviderUrls: [] を指定すると Chrome でエラーがでるようになったようだ。なのでつけないほいがいい、ないしブラウザ判定を入れる必要がある

 | 

スポンサード リンク

書いてる人

cho45 (佐藤広央) (www.lowreal.net)

Perl, JavaScript, Ruby, HTML, CSS, Web etc


スポンサード リンク