5

Web GeoLocation API ドキュメントを見ると、場所を取得する方法が 2 つあります。場所getCurrentPositionをすばやく読み取る方法とwatchPosition、位置の変化を監視する方法です。

私が探しているのは、非常に正確な位置情報をできるだけ早く取得する方法です。呼び出しで精度のしきい値を使用するのが理想的だと思います。getCurrentPositionしきい値に達するか、タイムアウトを超えたときに成功ハンドラーが呼び出されます (可能な限り正確な結果が得られます)。

これはまだ存在しませんよね?watchPositionおそらく、タイムアウトまたはしきい値に達した後にチェックを停止するメソッドをラップするだけで、これを実装するのはかなり簡単です。これを行うための組み込みメソッドを誰も知らない場合、私はこのアプローチを使用します(そしてコードを投稿するつもりです)...

4

2 に答える 2

3

組み込み関数はありません。タイムアウトは設定された精度よりも優れていることがわかりました。多くの場合、iPhoneの精度は約100メートルを上回らないため、より良いものをチェックし続けるのは無駄です。使用watchPosition()は最も効果的であり、三角測量のように見えるため、3回の読み取り後に改善されることはめったにありません。5秒待って停止します。

デモ: http: //jsfiddle.net/ThinkingStiff/3k859/

HTML:

<div id="result"></div>

脚本:

function setGeolocation() {

    var geolocation = window.navigator.geolocation.watchPosition( function ( position ) {

            document.getElementById( 'result' ).innerHTML += 
                  'lat: ' + position.coords.latitude + ', '
                + 'lng: ' + position.coords.longitude + ', '
                + 'accuracy: ' + position.coords.accuracy + '<br />';

        },
        function () {
            //error
        },
        {
            maximumAge: 250, 
            enableHighAccuracy: true
        } 

    );

    window.setTimeout( function () {

        window.navigator.geolocation.clearWatch( geolocation ) 

    }, 5000 );

};

setGeolocation();
于 2011-11-09T20:23:03.923 に答える
2

タクシー用の J2ME 地理位置情報ベースのアプリを開発した私の経験に基づいて、GPS チップは正確な位置情報を取得するために初期化を行います。推奨される方法は、watchPosition() と同様の方法を使用することです。これにより、正確な位置の読み取りを提供するために GPS チップをホットに保つことができます。

あなたのアプローチは理論的には正しいと思いますが、デバイスによって GPS チップのパフォーマンスが異なるため、実際のデバイスでテストする必要があります。

お役に立てれば。

于 2011-06-19T19:58:49.767 に答える