Я хотел бы сохранить GPS-трек в приложении, сделанным с Titanium (Android на данный момент), но я не знаю, как это сделать.Titanium Appcelerator - Сохранить GPS-трек
Моей целью было бы отслеживать положение пользователя каждые 5 секунд и сохранять его в телефоне (в файле JSON, я думаю, было бы лучшим решением). Я хочу, чтобы он работал как в фоновом режиме, так и в случае отсутствия сети. И как только телефон имеет сеть, я хочу синхронизировать файл с сервером.
Возможно ли это?
На данный момент я просто поставил базовую функцию (из документа appcelerator) с помощью setInterval ... но позиция всегда одна и та же, даже если я двигаюсь.
Вот мой код:
function save(){
setInterval(function(){
if (Ti.Geolocation.locationServicesEnabled) {
Titanium.Geolocation.purpose = 'Get Current Location';
Titanium.Geolocation.distanceFilter = 1 ;
Titanium.Geolocation.getCurrentPosition(function(e) {
if (e.error) {
Ti.API.error('Error: ' + e.error);
} else {
Ti.API.info(e.coords.altitude);
Ti.API.info(e.coords.heading);
Ti.API.info(e.coords.latitude);
Ti.API.info(e.coords.longitude);
Ti.API.info(e.coords.speed);
alert('LAT : '+e.coords.latitude+' LONG : '+e.coords.longitude+' SPEED : '+e.coords.speed+' ALT : '+e.coords.altitude);
}
});
} else {
alert('Please enable location services');
}
}, 5000);
}
save_button.addEventListener('click', function(){
save();
});
Я не знаю, как сделать это правильно. Если кто-то может мне помочь ... :)
Большое спасибо :)
Можете ли вы опубликовать фрагмент кода, отвечающий за получение геолокации? – Soumya
Сохраните позиции GPS в базе данных SQLite (Ti.Database) вместо файла JSON. И что еще важнее: используйте специальный модуль для отслеживания значительных изменений местоположения GPS. Предоставленный геолокационный модуль (Ti.Geolocation) находится на Android довольно медленно и неточно. – danny005
@Soumya Я добавил свой фрагмент кода :) –