flutter - 显示列表距离时设置最大半径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter - 显示列表距离时设置最大半径相关的知识,希望对你有一定的参考价值。

我正在开发最近的Food Dish应用程序位置。我设法根据最接近用户的位置显示它,使用此插件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();
    });

任何答案将不胜感激。

答案

如果我理解你的问题是正确的

_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
另一答案

我在你正在使用的包中看不到任何方法。您可以建议开发人员添加此功能吗?

或者,你在代码中得到total distance,这样你就可以做一个简单的if statement来检查总距离是否大于你设定的最大半径。

以上是关于flutter - 显示列表距离时设置最大半径的主要内容,如果未能解决你的问题,请参考以下文章

在百度地图中,已知圆的圆心坐标、 和圆的半径(单位:米),怎么计算圆的坐标范围?

Flutter:ListView最大高度

Flutter ListView设置分割线及列表嵌套不同的Item

Flutter——最详细的Container(容器)使用教程

Flutter——最详细的Container(容器)使用教程

三维血管重建