скорость андроида с помощью COARSE - PullRequest
0 голосов
/ 20 марта 2011

привет всем, как я могу получить скорость, используя ACCESS_COARSE_LOCATION в Android

спасибо

Ответы [ 2 ]

1 голос
/ 20 марта 2011

Привет, вы имеете в виду Location.getSpeed() Я полагаю, что это необязательное поле, и, вероятно, оно зависит от устройства, которое действительно его поддерживает.Сначала попробуйте это

Criteria criteria = new Criteria();
criteria.setSpeedRequired(true);
LocationProvider[] providers = mLocationManager.getProviders(criteria, false);

if (providers == null || providers.length == 0) {
 //Sorry it doesn't do it by default.
}

К счастью, математика и наука помогут нам :) Просто рассчитайте скорость, когда вы получаете обновления от вашего LocationProviders.Обязательно рассчитайте расстояние между широтой и долготой во времени как разницу между записанными временными метками двух обновлений Местоположения.

...
onLocationChanged(Location location) {
 if (mOldLocation != null) {
   float distance = getDistance(mOldLocation, location);
   long time = location.getTime() - mOldLocation.getTime();
   mSpeed = distance/time;
 }
 mOldLocation = location;
}

Это не обязательно будет очень точно (вероятно, очень шумно), но этоЛучше приготовить лимонад, чем гнилые фрукты ... надеюсь, это поможет.Обязательно сравнивайте дельты только одного и того же поставщикаВы, вероятно, обнаружите, что настраиваете ручной расчет, потому что поставщики устройств очень разнообразны и не гарантируют, что время всегда движется вперед.

1 голос
/ 20 марта 2011

Скорее всего, вы не можете.Технология определения местоположения, которая является "грубой", знает только то, где вы находитесь в пределах нескольких сотен метров.Ваша скорость может сильно отличаться.Если вам нужно знать свою скорость, вам, скорее всего, понадобится «точный» поставщик местоположения.

Или, еще лучше, используйте объект Criteria, чтобы указать, что вам нужно знать скорость устройства, и позволить ему ориентироваться.Вы лучший поставщик для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...