Flutter 检查当前位置是否靠近其他位置

Flutter 检查当前位置是否靠近其他位置,flutter,dart,Flutter,Dart,我有Latlng列表,其中包含lat和lng位置列表 我想检查一下我现在的位置离这些地方都有1公斤的距离 static locationListen() async { List<LatLng> savedPlace = [ LatLng(12.333,-344.2222), LatLng(1.333,-14.2222), LatLng(2.333,-24.2222), ]; var locationOptions =

我有Latlng列表,其中包含lat和lng位置列表 我想检查一下我现在的位置离这些地方都有1公斤的距离

static locationListen() async {

    List<LatLng> savedPlace = [
      LatLng(12.333,-344.2222),
      LatLng(1.333,-14.2222),
      LatLng(2.333,-24.2222),
    ]; 

    var locationOptions =
        LocationOptions(accuracy: LocationAccuracy.high, distanceFilter: 10);

    Geolocator().getPositionStream(locationOptions).listen(
          (Position position) {
            LatLng currentLatlng = LatLng(position.latitude,position.longitude);

            //check this if  is this currentLatlng near by 1 kilo from
            // any of those places savedPlace

          },
        );
  }
static locationListen()异步{
列表保存位置=[
LatLng(12.333,-344.2222),
LatLng(1.333,-14.2222),
LatLng(2.333,-24.2222),
]; 
var位置选项=
位置选项(精度:LocationAccurance.high,距离过滤器:10);
Geolocator().getPositionStream(locationOptions)。侦听(
(职位){
LatLng currentLatlng=LatLng(位置、纬度、位置、经度);
//如果电流接近1公斤,请检查此项
//那些地方中的任何一个
},
);
}

我看到您正在使用地理定位器插件:

试一试:

double distanceInMeters = await Geolocator().distanceBetween(lat1, lng1, lat2, lng2);

我看到您正在使用地理定位器插件:

试一试:

double distanceInMeters = await Geolocator().distanceBetween(lat1, lng1, lat2, lng2);

您可以使用插件调用
latlong 0.6.1

dependencies:
  latlong: ^0.6.1

import 'package:latlong/latlong.dart';
试试看

Geolocator().getPositionStream(locationOptions).listen( (Position position) {

 LatLng currentLatlng = LatLng(position.latitude,position.longitude); 

   savedPlace.forEach((savedlatlong) { 
       int km = distance.as(LengthUnit.Kilometer,currentLatlng,savedlatlong);
       // do whatever you wanna do with km
      }); 

},);

您可以使用插件调用
latlong 0.6.1

dependencies:
  latlong: ^0.6.1

import 'package:latlong/latlong.dart';
试试看

Geolocator().getPositionStream(locationOptions).listen( (Position position) {

 LatLng currentLatlng = LatLng(position.latitude,position.longitude); 

   savedPlace.forEach((savedlatlong) { 
       int km = distance.as(LengthUnit.Kilometer,currentLatlng,savedlatlong);
       // do whatever you wanna do with km
      }); 

},);
签出:签出: