Reading and Writing GCS Filesby Read Write Tools
|The gcsio CLI tool is for reading and writing Geographic Coordinate System encoded files. It serves as a GIS exchange format for points, lines, and polygons that use longitude/latitude coordinates.|
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.
gcsio package is a command line utility wrapper for the
gcslib core library.
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 CLI uses the node.js filesystem package to read and write files using the API's exported functions.
See also: The
gcslib core API parses and serializes to standard ECMAScript Strings and ArrayBuffers, with using the host computer's file system, so it can be used with client facing web pages that obtain data using HTTP.
The gcsio library may be installed directly from github or via NPM.
To install and run the CLI:
[user@host]# npm install -g gcsio
[user@host]# gcsio --help
GCSCIO | Geographic Coordinate System I/O: reading from and writing to files with longitude/latitude coordinates
usage: gcscio --input=filename --output=filename [options]
--input= filename to read from
--output= filename to write to
--iformat= input file format, optionally defaults to filename extension
--oformat= output file format, optionally defaults to filename extension
'geojson' RFC 7946
'gfe' Geographic Feature Encoding
'gfebin' Geographic Feature Encoding binary
'ice' Indexed Coordinate Encoding
'icebin' Indexed Coordinate Encoding binary
'tae' Topological Arc Encoding
'taebin' Topological Arc Encoding binary
--accuracy= digits to use for latitude and longitude coordinates 1 to 6 (1=11km, 2=1100m, 3=110m, 4=11m, 5=1.1m, 6=11cm)
--dataset-id= identifier for the collection of points, lines or polygons
--properties which properties to include with each feature
a comma-separated list of property names, or the keyword 'none' or 'all'†
--declarations the name of a file which contains declarations of property names and property types
where each line is in the form "name=type"
Valid types are:
tinyInt, tinyUint, tinyInt, tinyUint
shortInt, shortUint, shortInt, shortUint
longInt, longUint, longInt, longUint
|node.js||CLI and API|
|Documentation||Read Write Hub|
The gcsio 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.