Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.0.14

turf

Eine turf.js-ähnliche Geodatenanalysebibliothek, die mit GeoJSON arbeitet und rein in Dart geschrieben ist.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
176.000
Likes
51
Pub-Punkte
150

Paket installieren

flutter pub add turf

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Turf ist eine Geodatenanalyse-Bibliothek für Dart, inspiriert von turf.js, die speziell für die Arbeit mit GeoJSON-Daten entwickelt wurde. Sie bietet eine Reihe von Werkzeugen zur Durchführung räumlicher Operationen wie Distanzberechnungen, Pufferung, Schnittmengen und mehr, alles in reiner Dart-Implementierung. Ideal für Anwendungen, die Echtzeit-Geoberechnungen erfordern, ohne auf native Plattformcode angewiesen zu sein. Die Bibliothek unterstützt mehrere Plattformen wie Android, iOS, Web, macOS, Windows und Linux und ist daher äußerst vielseitig für plattformübergreifende Entwicklung. Ihre geringe Größe und Kompatibilität mit Flutter machen sie besonders gut geeignet für Karten und ortsbasierte Funktionen.

Anwendungsfälle

  • Geospatial-Datenverarbeitung
  • Kartenbasierte Analyse
  • Standortbasierte Anwendungen
  • Echtzeit-Raumberechnungen
  • GeoJSON-Manipulation

Hauptmerkmale

  • Reine Dart-Implementierung
  • Unterstützt GeoJSON
  • Plattformübergreifende Kompatibilität
  • API ähnlich wie Turf.js
  • Umfangreiche räumliche Operationen

Geeignet für

  • Flutter-Entwickler
  • GIS-Anwendungen
  • Mobile und Web-Mapping
  • Datenwissenschaftler, die mit Standortdaten arbeiten
  • Anwendungen, die Offline-Geodatenlogik benötigen

Hinweise

  • Erfordert GeoJSON-Eingabeformat
  • Beschränkt auf grundlegende geospatialen Funktionen
  • Keine integrierte Kartendarstellung
  • Die Leistung hängt von der Datenmenge ab
  • Nicht für sehr große Datensätze optimiert

Original-README

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


TurfDart Logo

A TurfJs-like geospatial analysis library written in pure Dart.


pub package dart unit tests dart publish License: MIT

–> Join our Dart / Flutter GIS Community on Discord <–

TurfDart is a Dart library for spatial analysis. It includes traditional spatial operations, helper functions for creating GeoJSON data, and data classification and statistics tools. You can use TurfDart in your Flutter applications on the web, mobile and desktop or in pure Dart applications running on the server.

As the foundation, we are using Geotypes, a lightweight dart library that provides a strong GeoJSON object model and fully RFC 7946 compliant serializers.

Most of the functionality is a translation from turf.js, the progress can be found here.

Get started

  • Get the Dart tools
  • Install the library with dart pub add turf
  • Import the library in your code and use it. For example:
import 'package:turf/helpers.dart';
import 'package:turf/src/line_segment.dart';

Feature<Polygon> poly = Feature<Polygon>(
  geometry: Polygon(coordinates: [
    [
      Position(0, 0),
      Position(2, 2),
      Position(0, 1),
      Position(0, 0),
    ],
    [
      Position(0, 0),
      Position(1, 1),
      Position(0, 1),
      Position(0, 0),
    ],
  ]),
);

void main() {
  var total = segmentReduce<int>(
    poly,
    (previousValue, currentSegment, initialValue, featureIndex,
        multiFeatureIndex, geometryIndex, segmentIndex) {
      if (previousValue != null) {
        previousValue++;
      }
      return previousValue;
    },
    0,
    combineNestedGeometries: false,
  );
  print(total);
  // total ==  6
}

GeoJSON Object Model

polymorphism

Notable Design Decisions
  • Nested GeometryCollections (as described in RFC 7946 section 3.1.8) are not supported which takes a slightly firmer stance than the "should avoid" language in the specification

Tests and Benchmarks

Tests are run with dart test and benchmarks can be run with dart run benchmark

Any new benchmarks must be named *_benchmark.dart and reside in the ./benchmark folder.

Kategorien

Abhängigkeiten

Abhängigkeiten 6 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden