Android GPS, как пропустить расстояние?
Я работаю над приложением с поддержкой GPS, и мне нужно записывать точку каждые N метров. Однако я не вижу, как я могу использовать метод onLocationChanged() в LocationListener или любом другом методе / классе. Метод onLocationChanged() дает точку каждую секунду, и мне нужно сохранить каждую точку N-метра.
Я считаю, что это простое решение, но, поскольку я новичок в Android, не могу найти его.
Любая помощь будет высоко ценится.
3 ответа
В onLocationChanged
, сравните местоположение, которое вы получили с последним, которое вы сохранили. Если это меньше, чем n
метров, откажитесь от этого. Если нет, сохраните его. Полоскание. Повторение.
РЕДАКТИРОВАТЬ: Подождите, даже проще - не requestLocationUpdates
иметь minDistance
параметр? Смотрите здесь: http://developer.android.com/reference/android/location/LocationManager.html
requestLocationUpdates
имеет параметр minDistance, который, если я правильно помню, делает то, что вы хотите. Я не смог проверить это на реальном телефоне, поэтому я не знаю, насколько это точно.
Он работает отлично myManager = ((LocationManager) ApplicationController.getAppContext().getSystemService( Context.LOCATION_SERVICE)); myManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1 * 1000, 0,00001f, this);
mintime = 1000мс всегда звонит....