Как рассчитать текущее изменение местоположения на 10 метров? - PullRequest
0 голосов
/ 10 марта 2020

Как рассчитать текущее изменение местоположения на 10 метров? 10 метров динамически меняется.

Я пробовал, location плагин на Flutter. но не работает в данный момент.

location.changeSettings(distanceFilter: 10,interval: 1000); // 10 - это метры, но местоположение обновляется каждый раз.

Как рассчитать, как это, мне нужно знать, как рассчитать (потому что мне нужно рассчитать время ожидания при путешествии)

if (currentLocation> previousLocation) // currentLocation следует быть больше 10 метров

currentLication = previousLocation + 10 meters

1 Ответ

1 голос
/ 10 марта 2020

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

location.onLocationChanged().listen((LocationData currentLocation) {
  // Use current location
});

Он вернет вам текущее местоположение, чем вы должны рассчитать его с помощью Формула Haversine, подробности здесь и здесь

a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
c = 2 ⋅ atan2( √a, √(1−a) )
d = R ⋅ c 

ниже код дротика может помочь вам рассчитать разницу и получить следующее местоположение:

import 'dart:math' show cos, sqrt, asin;

double calculateDistance(LatLng l1, LatLng l2) {
  const p = 0.017453292519943295;
  final a = 0.5 -
      cos((l2.latitude - l1.latitude) * p) / 2 +
      cos(l1.latitude * p) *
          cos(l2.latitude * p) *
          (1 - cos((l2.longitude - l1.longitude) * p)) /
          2;
  return 12742 * asin(sqrt(a));
}
...