Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.0.0

georange

Ein Paket, das bei der Kodierung von Geohashes, Dekodierung von Geohashes, Berechnung der Entfernung zwischen zwei Punkten und Erzeugung von Breiten- und Längenbereichen als Geohashes zur Unterstützung der Datenbankabfrage hilft (nur mit Firestore getestet).

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
263
Likes
33
Pub-Punkte
150

Paket installieren

flutter pub add georange

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

georange ist ein Flutter/Dart-Paket, das für Geolocation-Aufgaben entwickelt wurde und die Codierung und Decodierung von Geohash ermöglicht, die Berechnung der Entfernung zwischen zwei geografischen Punkten sowie die Erzeugung von Breiten- und Längenbereichen als Geohashes. Diese Funktionen sind besonders nützlich zur Optimierung von Datenbankabfragen in geospatialen Anwendungen, mit spezifischer Test- und Optimierung für Firestore. Das Paket unterstützt mehrere Plattformen wie Android, iOS, Web, macOS, Windows und Linux und ist somit vielseitig für die plattformübergreifende Entwicklung geeignet.

Anwendungsfälle

  • Geodaten-Indizierung
  • Standortabfragen basierend auf Firestore
  • Distanzberechnung zwischen Koordinaten
  • Echtzeit-Standortverfolgung
  • Standortbewusste Suchfunktionen
  • Effiziente, bereichsbasierte Datenbankfilterung

Hauptmerkmale

  • Geohash-Codierung und -Decodierung
  • Abstandsberechnung zwischen zwei Punkten
  • Generierung von Geohash-Bereichen für Abfragen
  • Für Firestore optimiert
  • Plattformübergreifende Kompatibilität
  • Einfache API für geospatialen Operationen

Geeignet für

  • Entwickler, die ortbasierte Apps erstellen
  • Apps, die effiziente geospatialen Datenbankabfragen erfordern
  • Projekte, die Firestore mit Geodaten verwenden
  • Plattformübergreifende mobile und Web-Anwendungen
  • Anwendungen, die schnelle Nachbarschaftssuchen benötigen

Hinweise

  • Hauptsächlich auf Firestore getestet
  • Beschränkt auf geohash-basierte räumliche Indizierung
  • Erfordert Verständnis von Geohash-Konzepten
  • Nicht für nicht-geographische Datenbanken optimiert
  • Abhängig von genauer Koordinateneingabe
  • Möglicherweise benötigen Sie zusätzliche Logik für Sonderfälle bei räumlichen Abfragen

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

georange

Dart License: MIT Pub Version

Georange is a package that helps with encoding geohashes, decoding geohashes,calculating distance between 2 points and generating latitudinal and longitudinal ranges as geohashes to help with the querying of databases (Tested on Firestore Only).

Heavily influenced by GeoFlutterFire

Buy Me A Coffee

Getting Started

You should ensure that you add Georange as a dependency in your flutter project.

dependencies:
  georange: <latest-version>

You should then run flutter packages get

Example

There is a detailed example project in the example folder.

Initialize

Import georange to your dart file and initialize

import 'package:georange/georange.dart';
GeoRange georange = GeoRange();
Encode LatLng

This method encodes the latitude and longitude

var encoded = georange.encode(-1.2862368,36.8195783);
print(encoded);

prints kzf0tvg5n

Decode Geohash

Decode a [geohash] into a pair of latitude and longitude.

Point decoded = georange.decode("kzf0tvg5n");
print(decoded);

prints -1.2862372398376465 36.819584369659424

Generate Range
  Range range = georange.geohashRange(-1.2921, 36.8219, distance: 10);
  print(range.lower);
  print(range.upper);

prints kzf05k6hh kzf30mptu

Calculate Distance between 2 Points
  Point point1 = Point(latitude: -4.0435, longitude: 39.6682); //Mombasa
  Point point2 = Point(latitude: -1.2921, longitude: 36.8219); // Nairobi

  var distance = georange.distance(point1, point2);
  print(distance);

prints 439.716 Distance in Kilometres

Usage with Firestore

  1. Add a document to firestore with a geohash field or a different name
  final FirebaseFirestore _db;
  ...
  String myhash = georange.encode(-1.2862368,36.8195783);
  await _db.collection("locations").add({
    "geohash":myhash,
  })
  ...
  1. Query Firestore (Runs like a normal firestore query)
final FirebaseFirestore _db;

GeoRange georange = GeoRange();

Range range = georange.geohashRange(currentLocation.latitude, currentLocation.longitude, distance:10);

QuerySnapshot snapshot = await _db
 .collection("locations")
 .where("geohash", isGreaterThanOrEqualTo: range.lower)
 .where("geohash", isLessThanOrEqualTo: range.upper)
 .limit(10)
 .get();

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.