Skip to content

Geospatial data structures, tools and utilities for Dart and Flutter mobile developers.

License

Notifications You must be signed in to change notification settings

s20797/geospatial

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧭 Geospatial tools for Dart

License Twitter URL

Geospatial data structures, tools and utilities for Dart and Flutter mobile developers.

This repository is at BETA stage, interfaces not fully final yet.

The geocore library package, based on Dart code hosted by this repository, provides geospatial data structures (features, geometry and metadata) and utilities to parse GeoJSON and WKT (Well-known text representation of geometry) data. The package also supports representing both geographic (decimal degrees or longitude-latitude) and projected (or cartesian XYZ) coordinates in 2D and 3D.

Some samples from the geocore package, please see the package itself for more documentation:


Geometry Shape Samples to create instances
Point Point2(x: 30.0, y: 10.0)
Point2.from([30.0, 10.0])
Point2.parse('30 10')
LineString LineString.parse('30 10, 10 30, 40 40', Point2.geometry)
Polygon Polygon.parse('(30 10, 40 40, 20 40, 10 20, 30 10)', Point2.geometry)
Polygon (with a hole) Polygon.parse('(35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 30 20, 20 30)', Point2.geometry)

As another library package, geodata provides a geospatial API client supporting reading GeoJSON and other geospatial data sources from web and file sources.

Please see also generic (non-geospatial) data structures, tools and utilities at the separate Dataflow tools for Dart repository.

📄 Code

This repository contains the following Dart code packages:

Code @ GitHub SDK Description
🌐 geocore Dart Geospatial data structures (features, geometry and metadata) and utilities (GeoJSON and partial support for Well-known text representation of geometry).
🌎 geodata Dart A geospatial API client to read GeoJSON and other geospatial data sources.

📦 Packages

Packages and documentation are published at pub.dev.

Latest package releases:

Package @ pub.dev Version Documentation Example code
🌐 geocore pub package API reference Example
🌎 geodata pub package API reference Example

Previously part of this repository, but starting from the version 0.6.0 code for these are hosted at the dataflow repository:

Package @ pub.dev Version Documentation Example code
🗒️ attributes pub package API reference Example
☁️ datatools pub package API reference Example

All packages supports Dart null-safety and using them requires at least Dart 2.12 from the stable channel. Please see the official null-safety migration guide.

🗞️ News

2021-05-22

  • geocore with new BETA version 0.6.2 (updated documentation)

2021-05-16

  • geocore with new BETA version 0.6.1
    • initial support for Well-known text representation of geometry or WKT
    • Also easier to use factories for points, line strings, polygons, etc.
      • Make geometries from arrays of num values.
      • Parse geometries from text with default implementation based on WKT.

2021-04-25

2021-03-03

  • BETA version 0.5.0 with stable sound null-safety on all packages requiring the stable Dart 2.12

2021-02-28

  • the first BETA version 0.5.0
  • preparing to stabilize null-safety features as described by the official blog:
  • datatools totally refactored
    • Fetch API abstraction (content, control data, exceptions, fetch interface).
    • Fetch API binding to HTTP and HTTPS resources (using http).
    • Fetch API binding to file resources (based on dart:io).
  • geodata also refactored, now with data source implementations:
  • other cleanup on other packages too

2021-01-10

  • latest alpha version 0.4.1
  • Point classes in geocore refactored to have num getters

2021-01-03

2020-11-29

  • initial alpha version 0.1.0
  • designed to Dart null-safety from start
  • the first version with following packages

🏗️ Roadmap

Future enhancement candidates for geocore, not in any order:

See other issues too.

🏡 Authors

This project is authored by Navibyte.

©️ License

This project is licensed under the "BSD-3-Clause"-style license.

Please see the LICENSE.

⭐ Links and other resources

Some external links and other resources.

Geospatial data formats and APIs

Geospatial:

OGC (The Open Geospatial Consortium) related:

W3C

Dart and Flutter programming

SDKs:

Latest on SDKs

Packages

Null-safety:

Guidelines

Roadmaps

Dart and Flutter libraries

There are thousands of excellent libraries available at pub.dev.

Here listed only those that are used (depended directly) by code packages of this repository:

Package @ pub.dev Code @ GitHub Description
equatable felangel/equatable Simplify Equality Comparisons
meta dart-lang/sdk This package defines annotations that can be used by the tools that are shipped with the Dart SDK.
synchronized tekartik/synchronized.dart Basic lock mechanism to prevent concurrent access to asynchronous code.

About

Geospatial data structures, tools and utilities for Dart and Flutter mobile developers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart 100.0%