Я хочу измерить расстояние от стартовой позиции во время вождения - PullRequest
0 голосов
/ 05 марта 2020

Я создаю приложение Android для измерения 1 км от стартовой позиции во время вождения.

я пробовал это: https://github.com/quentin7b/android-location-tracker/blob/master/README.md

   val settings = TrackerSettings()
            .setUseNetwork(true)
            .setUseGPS(true)
            .setUsePassive(false)
            .setTimeBetweenUpdates(1000)
            .setMetersBetweenUpdates(10F)

И я меняю положение, чтобы получить расстояние между позициями, используя:

 val distance = currentPosition!!.distanceTo(location)
 totalDistance += distance

Но результат не точный, кто-нибудь, как может дать лучшее решение

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Вы можете использовать метод android .location.Location.distanceBetween (), который делает это довольно хорошо. Для получения дополнительной информации

0 голосов
/ 05 марта 2020
private fun distance(
    startLatitude: Double,
    startLongitude: Double,
    endLatitude: Double,
    endLongitude: Double,
    unit: String
): String {
    val theta = startLongitude - endLongitude
    var dist: Double = sin(deg2rad(startLatitude)) * sin(deg2rad(endLatitude)) +
            cos(deg2rad(startLatitude)) * cos(deg2rad(endLatitude)) * cos(deg2rad(theta))
    dist = acos(dist)
    dist = rad2deg(dist)
    dist *= 60 * 1.1515 //miles
    if (unit == "k") {
        dist *= 1.609344 // km
    }
    return dist.toString()
} 
private fun deg2rad(deg: Double): Double {
        return deg * 3.1415926535897932 / 180.0
    }


private fun rad2deg(rad: Double): Double {
        return rad * 180.0 / 3.1415926535897932
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...