Я проверил Geoflutterfire в (центр: центр, радиус: радиус, поле: поле, strictMode: strictMode) метод, и он возвращает Stream<List<DocumentSnapshot>>
, как и ожидалось, но для расчета расстояния он использует класс-оболочка DistanceDocSnapshot , который имеет переменную DocumentSnapshot и distance.
Когда я отлаживал метод внутри, я обнаружил, что DistanceDocSnapshot имеет переменную distance типа double, но они не устанавливают значение расстояния в DocumentSnapshot перед возвратом.
Таким образом, в пакете есть данные, но они бесполезны, пока мы их не получим. К тому времени, когда они решат эту проблему или мы узнаем любой другой способ ее использования, вы можете использовать приведенный ниже код, чтобы получить расстояние, поскольку они используют то же самое в пакете и упомянуто в readme здесь Пакет GeoFlutterFire :
GeoFirePoint center = geo.point(
latitude: currentUserPos.latitude,
longitude: currentUserPos.longitude,
);
double distance = center.distance(lat: geoPoint.latitude, lng: geoPoint.longitude);
Обновление на том же : в соответствии с журналом изменений на странице пакета мы не сможем получить доступ к данным, используя do c .data ['distance'] с версия 2.1.0