geodata

Creator: coderz1093

Last updated:

0 purchases

TODO
Add to Cart

Description:

geodata

Geospatial feature service Web APIs with support for
GeoJSON and
OGC API Features clients for Dart.
Features #
✨ New (2024-05-26): The new documentation website (geospatial.navibyte.dev) for the geodata
package documentation published along with the stable version 1.2.0.
✨ New (2024-04-22): The stable version 1.1.0 adds support for Newline-delimited GeoJSON. See the related blog post about geobase changes.
✨ New (2023-10): The stable version 1.0.0 is now ready. See also the article Geospatial tools for Dart - version 1.0 published at Medium.
✨ New (2023-07): better client-side support for OGC API Features (Part 1 and 2).
Key features:

🪄 Client-side data source abstraction for geospatial feature service Web APIs.
🌐 The GeoJSON client to read features from static web resources and local files, supports also Newline-delimited GeoJSON data.
🌎 The OGC API Features client to access metadata and feature items from a compliant geospatial Web API providing GeoJSON data.

Client-side support for the OGC API Features standard:



Standard part
Support in this package




OGC API - Features - Part 1: Core
Supported for accessing metadata and GeoJSON feature collections.


OGC API - Features - Part 2: Coordinate Reference Systems by Reference
Supported.


OGC API - Features - Part 3: Filtering (draft)
Partially supported (conformance classes, queryables, features filter).



Documentation #
Comprehensive guidance on how to use this package and about
Geospatial tools for Dart (the package is part of) is available on the
geospatial.navibyte.dev website.
Shortcuts to the geodata
package documentation by chapters:

🌐 GeoJSON Web API client
🌎 OGC API Features client

See also overview topics about Geospatial tools for Dart:

⛳️ Getting started
📖 Introduction
💼 Code project
📚 API documentation

Introduction #
As a background you might want first to check a good
introduction about OGC API Features or a video about the
OGC API standard family,
both provided by OGC (The Open Geospatial Consortium) itself.
The following diagram describes a decision flowchart to select a client class
and a feature source to access GeoJSON feature collections and feature items:

Below you can find few step-by-step instructions how to get started in scenarios
represented in the decision flowchart.
Static GeoJSON web resource #
// 1. Get a feature source from a web resource using http.
final source = GeoJSONFeatures.http(location: Uri.parse('...'));

// 2. Access feature items.
final items = await source.itemsAll();

// 3. Get an iterable of feature objects.
final features = items.collection.features;

// 4. Loop through features (each with id, properties and geometry)
for (final feat in features) {
print('Feature ${feat.id} with geometry: ${feat.geometry}');
}
copied to clipboard
Static GeoJSON local resource #
// 1. Get a feature source using an accessor to a file.
final source = GeoJSONFeatures.any(() async => File('...').readAsString());

// 2. Access feature items.
final items = await source.itemsAll();

// 3. Get an iterable of feature objects.
final features = items.collection.features;

// 4. Loop through features (each with id, properties and geometry)
for (final feat in features) {
print('Feature ${feat.id} with geometry: ${feat.geometry}');
}
copied to clipboard
Web API service conforming to OGC API Features #
// 1. Get a client instance for a Web API endpoint.
final client = OGCAPIFeatures.http(endpoint: Uri.parse('...'));

// 2. Access/check metadata (meta, OpenAPI, conformance, collections) as needed.
final conformance = await client.conformance();
if (!conformance.conformsToFeaturesCore(geoJSON: true)) {
return; // not conforming to core and GeoJSON - so return
}

// 3. Get a feature source for a specific collection.
final source = await client.collection('my_collection');

// 4. Access (and check) metadata for this collection.
final meta = await source.meta();
print('Collection title: ${meta.title}');

// 5. Access feature items.
final items = await source.itemsAll(limit: 100);

// 6. Check response metadata.
print('Timestamp: ${items.timeStamp}');

// 7. Get an iterable of feature objects.
final features = items.collection.features;

// 8. Loop through features (each with id, properties and geometry)
for (final feat in features) {
print('Feature ${feat.id} with geometry: ${feat.geometry}');
}
copied to clipboard
For the step 5 other alternatives are:

Use source.items() to get feature items by a filtered query (ie. bbox).
Use source.itemById() to get a single feature by an identifier.
Use source.itemsAllPaged() or source.itemsPaged() for accessing paged
feature sets.

In the step 6 it's also possible to get links to related resources, and
optionally also to get a number of matched or returned features in a response.
Usage #
The package requires at least Dart SDK 2.17, and it
supports all Dart and Flutter
platforms.
Add the dependency in your pubspec.yaml:
dependencies:
geodata: ^1.2.1
copied to clipboard
Import it:
import `package:geodata/geodata.dart`
copied to clipboard
There are also partial packages containing only a certain subset. See the
Packages section below.
Other documentation:

📚 Concepts: If coordinates, geometries, features and feature collections
are unfamiliar concepts, you might want to read more about
geometries,
geospatial features
and GeoJSON in
the geobase package
documentation.
🚀 Samples:
The Geospatial demos for Dart
repository contains more sample code showing also how to use this package!

Packages #
The geodata library contains also following partial packages, that can be
used to import only a certain subset instead of the whole geodata package:



Package
Exports also
Description




common

Common data structures and helpers (for links, metadata, paged responses).


core

Metadata and data source abstractions of geospatial Web APIs (ie. features).


formats

OpenAPI document and Common Query Language (CQL2) formats (partial support).


geojson_client
common, core
A client-side data source to read GeoJSON data from web and file resources.


ogcapi_features_client
common, core, formats
A client-side data source to read features from OGC API Features services.



External packages geodata is depending on:

equatable for equality and hash utils
geobase for base geospatial data structures
http for a http client
meta for annotations

Reference #
Documentation #
Please see the geospatial.navibyte.dev
website for the geodata
package documentation.
Authors #
This project is authored by Navibyte.
More information and other links are available at the
geospatial repository from GitHub.
License #
This project is licensed under the "BSD-3-Clause"-style license.
Please see the
LICENSE.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.