html
Thematic Earth
GCSLIB
Parsing and Serializing GCS Strings by Read Write Tools Feb 3, 2022
Abstract |
---|
The gcslib JavaScript library is for parsing and serializing Geographic Coordinate System encoded strings and buffers. It serves as a GIS exchange format for points, lines, and polygons that use longitude/latitude coordinates. |
Motivation
The creation of this library and CLI was motivated by the desire to create GIS shape files that can be downloaded by website visitors in a highly compressed format.
Summary
The gcslib
package is a core JavaScript library used by the Geoplex package, the
GCSIO command line tool, and the Thematic Earth web component.
Supported input and output formats comprise:
- geojson - RFC 7946
- gfe - Geographic Feature Encoding
- ice - Indexed Coordinate Encoding
- tae - Topological Arc Encoding
- gfebin - Geographic Feature Encoding binary
- icebin - Indexed Coordinate Encoding binary
- taebin - Topological Arc Encoding binary
The JavaScript API reads from and writes to standard ECMAScript Strings and ArrayBuffers.
The API does not access the host computer's file system, so it can be used with client facing web pages that obtain data using HTTP.
See also: The GCSIO CLI tool which uses the node.js filesystem package to read and write files using the API's exported functions.
Installation
The gcslib library may be installed directly from github or via NPM.
Browser
To install and use the API
[user@host]# git clone https://github.com/readwritetools/gcslib.git
Sample web frontend to fetch and parse an ICE file into memory:
import API from 'node_modules/gcslib/api/user-api.js'
import GcsHoldingArea from 'node_modules/gcslib/gcs/gcs-holding-area.class.js'
var response = await fetch("https://example.com/my-dataset.ice");
var payload = await response.text();
var gcsHoldingArea = new GcsHoldingArea();
var options = {
inputFormat: "ice",
datasetId: "myDataset",
properties: "all"
};
if (API.parseIce(gcsHoldingArea, payload, options) == true) {
// gcsHoldingArea now contains the parsed features with their geometries and properties.
}
Metadata
Dependencies
This library depends on softlib .
Module exports
ES modules | true |
Common JS | false |
Suitability
Browser | API |
node.js | API |
Availability
Documentation | Read Write Hub | |
Source code | github | |
Package installation | npm |
License
The gcslib library is not freeware. After evaluating it and before using it in a public-facing website, eBook, mobile app, or desktop application, you must obtain a license from Read Write Tools as part of the thematic-earth DOM Component.
Thematic Earth Software License Agreement
Copyright © 2023 Read Write Tools.
- This Software License Agreement ("Agreement") is a legal contract between you and Read Write Tools ("RWT"). The "Materials" subject to this Agreement include the "Thematic Earth" software and associated documentation.
- By using these Materials, you agree to abide by the terms and conditions of this Agreement.
- The Materials are protected by United States copyright law, and international treaties on intellectual property rights. The Materials are licensed, not sold to you, and can only be used in accordance with the terms of this Agreement. RWT is and remains the owner of all titles, rights and interests in the Materials, and RWT reserves all rights not specifically granted under this Agreement.
- Subject to the terms of this Agreement, RWT hereby grants to you a limited, non-exclusive license to use the Materials subject to the following conditions:
- You may not distribute, publish, sub-license, sell, rent, or lease the Materials.
- You may not decompile or reverse engineer any source code included in the software.
- You may not modify or extend any source code included in the software.
- Your license to use the software is limited to the purpose for which it was originally intended, and does not include permission to extract, link to, or use parts on a separate basis.
- An eBook published under a single title and author.
- A mobile app for distribution under a single app name.
- A desktop application published under a single application name.
- A website published under a single domain name. For this purpose, and by way of example, the domain names "alpha.example.com" and "beta.example.com" are considered to be separate websites.
- A load-balanced collection of web servers, used to provide access to a single website under a single domain name.