geofenceDistance method
Future<List<GeoJsonPoint> >
geofenceDistance({
- required GeoJsonPoint point,
- required List<
GeoJsonPoint> points, - required num distance,
- bool disableStream = false,
- bool verbose = false,
Find all the GeoJsonPoint within a certain distance from a GeoJsonPoint
Implementation
Future<List<GeoJsonPoint>> geofenceDistance(
{required GeoJsonPoint point,
required List<GeoJsonPoint> points,
required num distance,
bool disableStream = false,
bool verbose = false}) async {
final foundPoints = <GeoJsonPoint>[];
final finished = Completer<void>();
late Iso iso;
iso = Iso(_geoFenceDistanceRunner, onDataOut: (dynamic data) {
if (data is GeoJsonPoint) {
final point = data;
foundPoints.add(point);
if (!disableStream) {
_processedPointsController.sink.add(point);
}
} else {
iso.dispose();
finished.complete();
}
}, onError: (dynamic e) {
throw GeofencingException("Can not geofence $e");
});
final dataToProcess = _GeoFenceDistanceToProcess(
points: points, point: point, distance: distance, verbose: verbose);
unawaited(iso.run(<dynamic>[dataToProcess]));
await finished.future;
return foundPoints;
}