我有一個Ti.Geolocation的問題,讓我瘋狂。目前只使用IOS平臺。我的目標是在移動電話時獲得儘可能高精度的GPS回傳。Ti.Geolocation回調只適用於運行KitchenSink
問題是,我已經複製了KitchenSink中geolocation.js的大部分代碼,下面顯示了相關部分。它對我來說看起來不錯,但是我得到的行爲很奇怪。
我只是沒有定期的GPS回調,當我走動!指南針正常工作,並始終給我回電。我也嘗試過不訂閱「標題」事件,但GPS行爲沒有改變。
只有一個事件可以用正確的數據觸發GPS回調,並且正在運行KitchenSink!切換到KitchenSink後面也給我一個回調,準確度在5到10之間。如果我不這樣做,我的準確度可能高達1500-2500(如果我得到回調的話,那就是)。
KitchenSink似乎工作正常,但我沒有看到那個應用程序做什麼,我不知道?!?
我已經在手機中關閉了Wifi,因此它不會打擾。這個問題非常令人沮喪,我現在花了三天的時間,有人可以幫忙嗎?我也嘗試過針對不同的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);
});
}