在dart中比较来自未来的数据

时间:2019-06-25 09:18:19

标签: flutter dart

我有一个我有经度和纬度的对象列表,我想从这个列表中获取最接近我的位置的3个元素。 我创建类似这样的东西:

   void _onGetAllStationsEvent(StationsEvent event) async {
    final stationsList = await _getAllStationsUseCase.run();

    final position = event.position;

    stationsList.sort((a, b) => getDistance(getPosition(a.latitude, a.longitude), position).compareTo(getDistance(getPosition(b.latitude, b.longitude), position)));

    statePipe.add(StationsState(stationsList.take(3).toList()));
  }

  LatLng getPosition(String lat, String lng){
    return LatLng(double.parse(lat), double.parse(lng));
  }

  Future<double> getDistanceStream(LatLng loc, LatLng currentPos) async {
    return await geolocator.distanceBetween(loc.lat, loc.lng, currentPos.lat, currentPos.lng);
  }

  double getDistance(LatLng loc, LatLng currentPos){
    var distance = 0.0;

    getDistanceStream(loc, currentPos).then((val) => distance = val);

    return distance;
  }

但这不起作用。有什么想法吗?

0 个答案:

没有答案