flutter - 设置显示List距离时的最大半径
flutter - Set the max radius when displaying the List distance
我正在开发最近的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();
});
任何答案将不胜感激。
我在您使用的包中看不到任何方法可以做到这一点。您可以建议开发人员将此功能添加到?
或者,您在代码中得到了 total distance
,因此您可以做一个简单的 if statement
来检查总距离是否大于您设置的最大半径。
如果我理解你的问题是正确的
_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
我正在开发最近的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();
});
任何答案将不胜感激。
我在您使用的包中看不到任何方法可以做到这一点。您可以建议开发人员将此功能添加到?
或者,您在代码中得到了 total distance
,因此您可以做一个简单的 if statement
来检查总距离是否大于您设置的最大半径。
如果我理解你的问题是正确的
_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