geo_firestore_flutter 0.1.7 copy "geo_firestore_flutter: ^0.1.7" to clipboard
geo_firestore_flutter: ^0.1.7 copied to clipboard

GeoFirestore for Flutter to do location based queries with Firestore

GeoFirestore #

GeoFirestore implementation for Flutter to do location based queries with Firestore.

This is a fork of joscmw95/geo_firestore. The primary difference between the repositories is how the geo data is structured in the database (see Database Structure).

GeoFirestore #

A GeoFirestore object is used to read and write geo location data to your Firestore database and to create queries. To create a new GeoFirestore instance you need to attach it to a Firestore collection reference:

Firestore firestore = Firestore.instance;
GeoFirestore geoFirestore = GeoFirestore(firestore.collection('places'));

Setting location data

To set the location of a document simply call the setLocation method:

await geoFirestore.setLocation('tl0Lw0NUddQx5a8kXymO', GeoPoint(37.7853889, -122.4056973));

To remove a location and delete the location from your database simply call:

await geoFirestore.removeLocation('tl0Lw0NUddQx5a8kXymO');

Retrieving a location

If the document is not present in GeoFirestore, the callback will be called with null. If an error occurred, the callback is passed the error and the location will be null.

final location = await geoFirestore.getLocation('tl0Lw0NUddQx5a8kXymO');
print('Location for this document is $location.latitude, $location.longitude');

Geo Queries #

GeoFirestore allows you to query all documents within a geographic area using the method getAtLocation.

final queryLocation = GeoPoint(37.7853889, -122.4056973)

// creates a new query around [37.7832, -122.4056] with a radius of 0.6 kilometers
final List<DocumentSnapshot> documents = await geoFirestore.getAtLocation(queryLocation, 0.6);
documents.forEach((document) {
  print(document.data);
});

Database Structure #

GeoFirestore writes/reads two fields from Firestore objects: "g" (geohash) and "l" (latitude/longitude):

{
  "g": "dr8vyzzwqd",
  "l": [
    43.2419, 
    -77.3881
  ]
}

This library is inspired mostly a port of GeoFirestore-Android.

12
likes
130
points
990
downloads

Publisher

verified publisherpercula.dev

Weekly Downloads

GeoFirestore for Flutter to do location based queries with Firestore

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

cloud_firestore, flutter

More

Packages that depend on geo_firestore_flutter