扑 - 显示列表时,距离设置最大半径(flutter - Set the max radius wh

2019-09-28 16:27发布

我正在开发最近菜盘应用程序的位置。 我管理的基础上最接近用户的位置,以显示它,使用这个插件great_circle_distance

我想知道如何设置最大半径? 恩。 <30公里

在这里我的代码:

 _foodByCategories.sort((a, b) {
      var distance1 = new GreatCircleDistance.fromDegrees(
          latitude1:
              model.userLocation == null ? 0.0 : model.userLocation["latitude"],
          longitude1: model.userLocation == null
              ? 0.0
              : model.userLocation["longitude"],
          latitude2: a.lat,
          longitude2: a.long);
      double totaldistance1 = distance1.haversineDistance();

      var distance2 = new GreatCircleDistance.fromDegrees(
          latitude1:
              model.userLocation == null ? 0.0 : model.userLocation["latitude"],
          longitude1: model.userLocation == null
              ? 0.0
              : model.userLocation["longitude"],
          latitude2: b.lat,
          longitude2: b.long);
      double totaldistance2 = distance2.haversineDistance();
      return (totaldistance1 - totaldistance2).toInt();
    });

任何答案赞赏。

Answer 1:

如果我理解你的问题正确

_foodByCategories.where((a) {
  var distance = new GreatCircleDistance.fromDegrees(latitude1: double.parse(widget.lat), longitude1: double.parse(widget.lng), latitude2: double.parse(a.lat), longitude2: double.parse(a.lng));
  var totaldistance = distance.haversineDistance().toStringAsFixed(2);
  double distanceDouble1 = double.parse(totaldistance);
  return distance <= 30000; // or something like that
}).sort ... // and your sorting code


Answer 2:

我看不到任何方式您使用的是包内做到这一点。 你可以建议开发者在添加此功能?

另外,你所得到的total distance在你的代码,所以你可能只是做一个简单的if statement来检查的总距离超过您所设定的最大半径更大。



文章来源: flutter - Set the max radius when displaying the List distance