Я пытаюсь получить расстояние между двумя точками, но я всегда получаю результат 0,0 км.
Я пробовал 2 версии, но обе они дают мне результат 0,0км .
Версия с LatLng
Версия с местоположением
Эта версияс местоположением
private fun onLocationchanged(location:Location):Float {
if(mStartLocation == null)
{
mStartLocation = mCurrentLocation
mEndLocation = mCurrentLocation
}
else {
mEndLocation = mCurrentLocation
}
mCurrentLocation = location;
val distance = mStartLocation.distanceTo(mEndLocation)
tvDistanzKm.text = distance.toString()
return distance
//Testing...No Difference
val currentLocation = mStartLocation.latitude
tvStart.text = currentLocation.toString()
val endLocation = mEndLocation.latitude
tvEnd.text = endLocation.toString()
}
Эта версия с LatLang
fun getLaufDistanz():Float {
if(mLatLngStart == null) {
mLatLngStart = mLatLngCurrent
mLatLngEnde = mLatLngCurrent
}else{
mLatLngEnde = mLatLngCurrent
}
val laufStartPunkt = Location("")
laufStartPunkt.latitude = mLatLngCurrent.latitude
laufStartPunkt.longitude = mLatLngCurrent.longitude
val laufEndPunkt = Location("")
laufEndPunkt.latitude = mLatLngCurrent.latitude
laufEndPunkt.longitude = mLatLngCurrent.longitude
val laufDistanzInMeter = laufStartPunkt.distanceTo(laufEndPunkt)
tvDistanzKm.text = laufDistanzInMeter.toString()
return laufDistanzInMeter
}
Это мой обратный вызов
//Result is always 0.0km
val distance = mStartLocation.distanceTo(mEndLocation)
tvDistanzKm.text = distance.toString()
//Testing...No Difference
// mStartLocation == mEndLocation ???????
val currentLocation = mStartLocation.latitude
tvStart.text = currentLocation.toString()
val endLocation = mEndLocation.latitude
tvEnd.text = endLocation.toString()
//Testing the latitude/longitude in TextView
tvLatitude.text = location.latitude.toString()
tvLongitude.text = location.longitude.toString()
if (location != null) {
if (location.hasSpeed()) {
val getkmh = (location.speed * 3.6)
tvTempo.text = getkmh.toString()
tvSpeed.text = location.speed.toString()
} else {
tvTempo.text = "0.00"
tvSpeed.text = "0.00"
}
if (location.hasAccuracy()) {
tvAccuracy.text = location.accuracy.toString()
} else {
tvAccuracy.text = "schlechte Ortung"
}
if (location.hasAltitude()) {
tvAltitude.text = location.altitude.toString()
} else {
tvAltitude.text = "Nix Höhe"
Toast.makeText(
applicationContext,
"keine Höhe erkannt",
Toast.LENGTH_SHORT
)
.show()
}
startLocationUpdates()
updatePolyline()
buttons()
onLocationchanged(location)
getLaufDistanz()
}
я не знаю гдепроблема в том, пожалуйста, помогите мне. спасибо.
я пробовал это по-разному, но всегда безрезультатно.
я не нашел решения онлайн, также не на stackoverflow.
яновичок в Kotlin.
спасибо