Xamarin Forms Geolocator постоянно обновляет местоположение - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу постоянно обновлять текущее местоположение устройства на карте Google.

Я должен реализовать свою собственную голубую точку по разным причинам. То, что я сделал, это:

  • Я скрываю карту Google по умолчанию Мое местоположение * Маркер ( Синяя точка по умолчанию ).

  • Я рисую свою синюю точку

  • Я создал поток, который продолжает вызывать Geolocator для обновления его текущей позиции: await locator.GetPositionAsync(TimeSpan.FromSeconds(2), null, false);

Однако обновление позиции занимает значительную задержку. Я пытаюсь обновить позицию с очень небольшим интервалом (около 50 мс), который может дать мне результат, аналогичный исходной синей точке карты Google, когда устройство движется.

Как мне этого добиться?

1 Ответ

0 голосов
/ 12 мая 2018

Я обнаружил, что CrossGeolocator имеет функцию прослушивания , которая выдаст запрос об обновлении позиции. Вместо того, чтобы продолжать вызывать текущую позицию, эта функция будет постоянно прослушивать любые изменения позиции.

if (CrossGeolocator.IsSupported &&
    CrossGeolocator.Current.IsGeolocationAvailable &&
    CrossGeolocator.Current.IsGeolocationEnabled)
{
    CrossGeolocator.Current.PositionChanged += HandlePositionChanged;
    await CrossGeolocator.Current.StartListeningAsync(TimeSpan.FromSeconds(1), 10);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...