У меня есть некоторые данные, которые я собираю из своего GPS, после того, как я вычислил расстояние между моей текущей позицией и этими данными GPS, я хочу, чтобы ползунок автоматически перемещался при приближении к этой точке.
но проблема в том, что когда я помещаю цикл while для обновления значения расстояния, я получаю ошибку в своем пользовательском интерфейсе. поэтому я удалил петлю, но не могу отобразить новое значение расстояния в реальном времени.
сначала я рассчитал расстояние между первой и последней точкой моего маршрута и сделал это значение максимальным значением моего ползунка.
значение ползунка, которое должно динамически изменяться, - это расстояние от начальной точки.
private async void Prog()
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync(TimeSpan.FromSeconds(1));
double startpoint = distance_on_geoid(position.Latitude,position.Longitude,JSONData.GetGlcLatitude1()[0],JSONData.GetGlcLongitude1()[0]);
double endpoint = distance_on_geoid(position.Latitude, position.Longitude, JSONData.GetGlcLatitude1()[JSONData.GetGlcLatitude1().Count-1], JSONData.GetGlcLongitude1()[JSONData.GetGlcLongitude1().Count-1]);
double alertDistance = distance_on_geoid(JSONData.GetGlcLatitude1()[0], JSONData.GetGlcLongitude1()[0], JSONData.GetGlcLatitude1()[JSONData.GetGlcLatitude1().Count - 1], JSONData.GetGlcLongitude1()[JSONData.GetGlcLongitude1().Count - 1]);
slider.Maximum = alertDistance;
double startpoint_ = Convert.ToDouble(String.Format("{0:0.00}", startpoint));
test.Text = startpoint_.ToString();
if (startpoint_>=0.01)
{
slider.IsVisible = true;
slider.Value = alertDistance - endpoint;
}
else
{
slider.IsVisible = false;
}
}
(JSONData ... это значения моего маршрута)
Я ожидаю, что ползунок будет двигаться автоматически, когда я подойду к конечной точке. ползунок должен быть виден только тогда, когда я нахожусь в зоне, в противном случае он должен быть невидимым.