Xamarin GeoLocatorPlugin изменить minDistance во время выполнения - PullRequest
0 голосов
/ 12 октября 2018

в моем xamarin-App мне нужно геозонирование.

Я использую GeoLocatorPlugin .

Есть ли способ повлиять на параметр "minDistance" во время выполнения (после начала прослушивания)?

await StartListeningAsync(TimeSpan.FromSeconds(5), "minDistance");

Справочная информация: я хочу оптимизировать интервал для «обновления (изменения) позиции» в зависимости от заданных «точек интереса» (их расстояния до позиции пользователя).

Привет и спасибо заранее.

1 Ответ

0 голосов
/ 12 октября 2018

В настоящее время я получаю время и расстояние с помощью веб-службы (сейчас я не знаю, но вы можете сделать что-то очень похожее на это), и я сохраняю так (Локальное хранилище устройства):

  dynamic obj = JsonConvert.DeserializeObject<Rootobject>(responseString);
                Application.Current.Properties["gps_distancia"] = obj.rssUser.gps_distancia;
                Application.Current.Properties["gps_tempo"] = obj.rssUser.gps_tempo;

А затем я вызываю время и расстояние хранения, полученное от веб-службы, и сохраняю в устройстве:

           int tempoWebService = Int32.Parse(Application.Current.Properties["gps_tempo"].ToString()); 
        int distanciaWebService = Int32.Parse(Application.Current.Properties["gps_distancia"].ToString()); 


        await CrossGeolocator.Current.StartListeningAsync(TimeSpan.FromSeconds(tempoWebService), distanciaWebService, true, new Plugin.Geolocator.Abstractions.ListenerSettings
        {
            ActivityType = Plugin.Geolocator.Abstractions.ActivityType.AutomotiveNavigation,
            AllowBackgroundUpdates = true,
            DeferLocationUpdates = true,
            DeferralDistanceMeters = 1,
            DeferralTime = TimeSpan.FromSeconds(1),
            ListenForSignificantChanges = true,
            PauseLocationUpdatesAutomatically = false
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...