Ti.Geolocationに問題があり、頭がおかしくなります。これまでのところ、IOSプラットフォームのみを使用しています。目標は、携帯電話を持って移動するときに、可能な限り最高の精度でGPSコールバックを取得することです。
問題は、KitchenSinkのgeolocation.jsからほとんどのコードをコピーしたことです。関連する部分を以下に示します。私には問題ないように見えますが、私が得る行動は非常に奇妙です。
歩き回ると、定期的にGPSコールバックが届きません。ただし、コンパスは正常に機能し、常にコールバックを送信します。また、「見出し」イベントをサブスクライブせずに試しましたが、GPSの動作に変更はありません。
正しいデータでGPSコールバックをトリガーできるイベントは1つだけで、KitchenSinkを実行しています。KitchenSinkに切り替えて元に戻すと、5〜10の精度のコールバックが得られます。そうしないと、精度が1500〜2500に達する可能性があります(コールバックを取得した場合)。
KitchenSinkは正常に動作しているようですが、そのアプリが何をしていないのかわかりませんか?!?
電話のWifiをオフにしているので、邪魔になりません。この問題は非常に苛立たしいものであり、私は今3日間この問題に取り組んでいますが、誰か助けてもらえますか?さまざまなSDKに対してもコンパイルを試みました(通常は2.1.1GAですが、1.8.2まで)。変化なし。
if (locationServicesAvailable()) {
// APPLICATION LOGIC
ui.init();
Ti.Geolocation.purpose = "Get Lat/Long of your current position";
Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_BEST;
Ti.Geolocation.distanceFilter = 10;
Ti.Geolocation.frequency = 0; /* as fast as possible */
Ti.Geolocation.preferredProvider = Ti.Geolocation.PROVIDER_GPS;
if (Ti.Geolocation.hasCompass) {
// TURN OFF ANNOYING COMPASS INTERFERENCE MESSAGE
Ti.Geolocation.showCalibration = false;
// SET THE HEADING FILTER (THIS IS IN DEGREES OF ANGLE CHANGE)
// EVENT WON'T FIRE UNLESS ANGLE CHANGE EXCEEDS THIS VALUE
Ti.Geolocation.headingFilter = 45;
/*
Ti.Geolocation.getCurrentHeading(handleCompass);
Ti.Geolocation.addEventListener('heading', handleCompass);
*/
}
Ti.Geolocation.getCurrentPosition(handlePosition);
Ti.Geolocation.addEventListener('location', handlePosition);
ui.refresh.addEventListener('click', function(e) {
Ti.Geolocation.getCurrentPosition(handlePosition);
});
}