Как установить расстояние между пользователями, используя Geolocator в флаттере - PullRequest
0 голосов
/ 15 апреля 2020

В настоящее время я пытаюсь предоставить пользователям возможность что-то делать, когда пользователи находятся в радиусе х метров от позиции, которую я определил. Итак, что я имею в виду ... Я объявляю позицию с широтой x и долготой y ... и затем, если позиция пользователя находится в 500 метрах от позиции, которую я объявил, они могут получить доступ к чему-то еще ... есть ли способ сделать это ? вот часть моего кода

Position _mine;
  Future _searchMe() async {
    if ((await Geolocator().isLocationServiceEnabled())) {
      final Geolocator geolocator = Geolocator()..forceAndroidLocationManager;
      geolocator
          .getCurrentPosition(desiredAccuracy: LocationAccuracy.high)
          .then((Position position) {
        setState(() {
          _mine = position;
        });
        print(_mine.latitude);
      }).catchError((err) {
        print(err);
      });
    } else {
      print("ok");
      showDialog(
          context: context,
          builder: (BuildContext context) {
            return AlertDialog(
              content:
                  const Text('Make sure your GPS is on !'),
              actions: <Widget>[
                FlatButton(
                    child: Text('ok'),
                    onPressed: () {
                      Navigator.of(context, rootNavigator: true).pop();
                    })
              ],
            );
          });
    }
  }

1 Ответ

1 голос
/ 17 апреля 2020

Вы, вероятно, можете сделать что-то, как показано ниже:

double _countDistance(double userLatitude, double userLongitude) {
    return Distance().as(
      LengthUnit.Kilometer,
      LatLng(declaredLocation.latitude, declaredLocation.longitude),
      LatLng(userLatitude, userLongitude),
    );
  }

Объяснение:

Метод Distance (). Принимает три параметра: A. единица измерения, например, километр, метр и т. Д. c , Б. первый лат-лонг C. second lat-long

Приведенная выше функция рассчитывает расстояние в км. Вы можете добавить этот код в свой и делать что-то, когда пользователь находится в пределах 500 метров.

...