polylabel_cmd
…is the command-line version of Polylabel. Install it using cargo install polylabel_cmd
, or download a binary and put it on your $PATH.
This gives you the polylabel
command.
Polylabel takes one mandatory argument: a file containing valid GeoJSON containing Polygons and / or MultiPolygons to be labelled. They can be included as a Feature,
or a Geometry
, or aFeatureCollection
or GeometryCollection
– you may also mix the two geometries in a FeatureCollection
or GeometryCollection
.
GeometryCollection
s is supported, but you shouldn't be using thoseMulti
)Polygon
geometries cannot be processed – their presence will halt further processing.You may also pass:
- -t
or --tolerance
, allowing you to fine-tune the tolerance from the default 0.001
. Smaller tolerances take longer to calculate
- -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.
Irrespective of input, output is a GeoJSON FeatureCollection
. Its contents depend on the input geometry:
- Polygon
: The FeatureCollection
contains Point
Feature
s
- MultiPolygon
: The FeatureCollection
contains MultiPoint
Feature
s
- GeometryCollection
: The FeatureCollection
contains GeometryCollection
Feature
s whose collection members are Point
s or MultiPoint
s.
Output features retain the order of input features / geometries, and input feature properties are mapped to output features where they exist.
Depending upon the dimensions of your polygon(s), you may require a higher tolerance (i.e. a smaller number) than the default. See here for some guidance on the accuracy provided by each decimal place. The GeoJSON spec reccommends six decimal places, which provides accuracy around 10cm, which translates to -t 0.000001
, which should be sufficient for applications which don't require survey-quality accuracy.
If you aren't piping the output of the command to a file, polylabel
will display progress of the parsing and labelling steps in the terminal, as well as a final count of the labelled polygons.
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.
Polylabel is fast. Polygons are processed in parallel, using Rayon. Higher tolerances will result in slower processing.
Pre-built binaries are available from releases. Binaries are available for: - macOS (x8664) - Linux (x8664) - Windows (x86_64 and i686)