Я работаю над проектом (Запуск приложения для Android Устройства) для моего университета. Итак - вчера я написал метод, который вычисляет расстояние между двумя координатами (предыдущей и текущей). Этот метод повторяется через каждую секунду после начала цикла и заканчивается после его окончания.
Таким образом, по сути, это вырез кода:
private void ResetInits()
{
temp = 0;
x_start = 0;
y_start = 0;
x_actual = 0;
y_actual = 0;
}
async void ActualPos()
{
ResetInits();
var request = new GeolocationRequest(GeolocationAccuracy.Best);
var currentloc = await Geolocation.GetLocationAsync(request);
x_actual = currentloc.Latitude;
y_actual = currentloc.Longitude;
}
async void CalcAfterSecMethode()
{
var location_start = new Xamarin.Essentials.Location(x_actual, y_actual);
//new Positions
var request_start = new GeolocationRequest(GeolocationAccuracy.Best);
var currentloc_start = await Geolocation.GetLocationAsync(request_start);
x_start = currentloc_start.Latitude;
y_start = currentloc_start.Longitude;
var location = new Xamarin.Essentials.Location(x_start, y_start);
double distanceaftersec = location_start.CalculateDistance(location, DistanceUnits.Kilometers);
temp += distanceaftersec;
ticker.Text = temp.ToString();
x_actual = x_start;
y_actual = y_start;
}
private void btn_start_Clicked(object sender, EventArgs e)
{
//Current Position
ActualPos();
Parallel.Invoke(() =>
{
stopwatch.Start();
RunStopuhr();
});
Device.StartTimer(TimeSpan.FromMilliseconds(100), () =>
{
if (stopwatch.ElapsedMilliseconds >= 1000)
{
//METHODCALC
CalcAfterSecMethode();
stopwatch.Restart();
}
return true;
});
}
Самое интересное, когда я запускаю свое приложение на эмуляторе android, оно вычисляет все расстояния от точек ... Так что, в основном, это должно делать обычное приложение для отслеживания бега. Каждую пройденную секунду метод получает 2 балла и добавляет расстояние к ticker.text (это метка в xamarin, просто показывает пройденный трек.) Но! На каждом android устройстве, которое я пробовал - оно показывает реальные запутанные числа: например, 5000 после того, как вы только что начали пробежку.
Было бы замечательно, если бы кто-то мог помочь мне здесь, привет.