10 releases
0.2.3 | Mar 4, 2020 |
---|---|
0.2.1 | May 13, 2019 |
0.1.10 | Dec 3, 2018 |
0.1.8 | May 29, 2018 |
#3 in #d3
1MB
364 lines
GeoJSON_d3
Introduction
d3-geo
uses spherical (as opposed to planar) polygons, and expects the rings of input polygons which are smaller than a hemisphere to be oriented in a different order than the GeoJSON RFC 7946 specification, which can lead to unexpected errors. This binary checks the spherical area of RFC 7946-compliant Polygons, converting them to d3-geo
-compliant ring orientation if necessary, or vice-versa.
Installation
Install it using cargo install geojson_d3
, or download a binary and put it on your $PATH.
This provides the geojson_d3
command.
Use
geojson_d3
takes one mandatory argument: a file containing valid GeoJSON. Polygon and / or MultiPolygon geometries can be included as a Feature,
or a Geometry
, or aFeatureCollection
or GeometryCollection
. You may mix geometries in a FeatureCollection
or GeometryCollection
.
You may also pass:
-
-p
or--pretty
, which will pretty-print the GeoJSON output -
-s
or--stats-only
, which will output the number of labelled polygons, but will not output GeoJSON -
-r
or--reverse
, which will reverse the functionality, producing geometries with rings wound correctly according to RFC 7946. -
No assumptions are made concerning the existing winding order of Polygon rings:
- By default, output will be in
d3-geo
-compliant winding order - If
-r
or--reverse
are specified, output will be in RFC 7946 order
- By default, output will be in
-
Processing of nested
GeometryCollection
s is supported, but you shouldn't be using those -
Empty geometries or collections will be left unaltered
-
Non-(Multi)Polygon geometries are left unaltered
-
All input properties are preserved
Progress
If you aren't piping the output of the command to a file, geojson_d3
will display progress of the parsing and processing steps in the terminal, as well as a final count of the processed (Multi)Polygons.
Validity
While the structure of the input GeoJSON is validated, individual geometries are not validated in the DE-9IM sense. If they self-intersect, have open rings etc., results are not guaranteed to be correct.
Speed
The included NYC Boroughs
file (~69k Points
) is processed in ~140 ms on a dual-core 1.8 GHz Intel Core i7.
Binaries
Pre-built binaries are available from releases. Binaries are available for:
- macOS (x86_64)
- Linux (x86_64)
- Windows (x86_64 and i686)
License
Dependencies
~8–17MB
~225K SLoC