在 flutter 中搜索距离 firebase 最近的对象

问题描述 投票:0回答:1

美好的一天, 我想在 flutter 中做 findapp 。 请帮助决定计算点之间的距离。

我找到了这个代码

决定两点。

但是我需要使用圆圈 - 在我的许多对象的 firebase 坐标中 - 大约 200。我想向用户显示距离这些最近的 3 个对象。我需要怎样做才正确? 谢谢你

import 'dart:math' show cos, sqrt, asin;

void main() {
double calculateDistance(lat1, lon1, lat2, lon2){
var p = 0.017453292519943295;
var c = cos;
var a = 0.5 - c((lat2 - lat1) * p)/2 +
c(lat1 * p) * c(lat2 * p) *
(1 - c((lon2 - lon1) * p))/2;
return 12742 * asin(sqrt(a));
}
double totalDistance = calculateDistance(26.196435, 78.197535,26.197195, 78.196408);
print(totalDistance);
}
flutter geolocation distance
1个回答
2
投票

您可以使用 geolocator 包中的方法:

像这样:

import 'package:geolocator/geolocator.dart';
double distanceInMeters = await Geolocator.distanceBetween(52.2165157, 6.9437819, 52.3546274, 4.8285838);

参考:

https://pub.dev/packages/geolocator#calculate-distance

© www.soinside.com 2019 - 2024. All rights reserved.