Crates.io | polylabel_cmd |
lib.rs | polylabel_cmd |
version | 1.4.0 |
source | src |
created_at | 2017-12-13 16:38:59.498857 |
updated_at | 2021-02-03 11:41:18.916229 |
description | A command-line utility for finding optimum polygon label positions |
homepage | |
repository | https://github.com/urschrei/polylabel_cmd |
max_upload_size | |
id | 42987 |
size | 50,209 |
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 provides 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 thoseYou 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
sMultiPolygon
: The FeatureCollection
contains MultiPoint
Feature
sGeometryCollection
: The FeatureCollection
contains GeometryCollection
Feature
s whose collection members are Point
s or MultiPoint
sOutput 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 recommends a maximum of six decimal places, which provides accuracy around 10cm, which translates to -t 0.000001
. This 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.
It runs ~10x faster than the NPM package. Polygons are processed in parallel, using Rayon. Note that higher tolerances will result in slower processing.
Pre-built binaries are available from releases. Binaries are available for: