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мс всегда звонит....

Другие вопросы по тегам