2

コーディングに問題があります。私のコードは、1414よりも低い精度を得ていないようです。

私がグーグルマップを開いて、そこに私の場所を取得するときはいつでも、それは通常1秒以内にそれを見つけます。切り替えると、数秒間正しい精度が表示され、その後、非常に低い精度(1414)に戻ります。

私は何が間違っているのですか?

これは私のコードです:

function reportPosition(e){
    label.text = e.coords.longitude + " - " + e.coords.accuracy;
}

Ti.Geolocation.purpose = "Test";
Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_BEST;
Titanium.Geolocation.distanceFilter = 10;
Ti.Geolocation.preferredProvider = Titanium.Geolocation.PROVIDER_GPS;
Titanium.Geolocation.getCurrentPosition(reportPosition);

Titanium.Geolocation.addEventListener('location', reportPosition);
Titanium.Geolocation.addEventListener('heading', reportPosition);
4

2 に答える 2

0

この質問の背景は他にありますか?

私はあなたの正確なコードを実行し、10から183の間の精度を受け取りましたが、それ以上になることはありません。

また、「見出し」が偽の番号を報告する同じメソッドを呼び出していないことを確認するために分割しました。

シミュレーターとiPhone4Sの両方で、Ti1.7.2を使用して4.1に対してコンパイルしました。

コンパス干渉をオフにしましたか?あなたがグーグルマップからあなたのアプリに切り替えると言うとき。切り替えていますか、それとも埋め込みマップを使用していますか?精度に大きな変更を加えることなく、マップとアプリを切り替えてみましたか?

おそらく悪いハードウェアまたは場所?(それはあなたがグーグルマップを使用した後にあなたが良い結果を得る理由を説明しないでしょうが)。アプリの起動時に常に良い結果が得られ、それらは低下しますか?

明白な答えは、あなたが何も悪いことをしておらず、それを使用している場所/ハードウェアに対して正しいレベルの精度を受け取っているということです。

于 2011-10-15T23:40:11.903 に答える
0

同じ問題が発生し、ACCURACY_BESTオプションに問題があるはずであることがわかりました。

奇妙ですが、精度の低いオプションを試してみると、より良い結果が得られます。次のようにしてみてください。

Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_NEAREST_TEN_METERS;

それから私がしたことは、ACCURACY_NEAREST_TEN_METERSから始めて、後でそれをACCURACY_BESTに変更することです(最初の場所の読み取りで)。

さまざまな場所でこれを試しましたが、最初の読み取りで65メートルから始まり、10〜5メートル後に進みます。

于 2013-08-15T14:50:44.420 に答える