Awesome
geojson-polygon-labels
Command line tool to generate point labels from GeoJSON polygons.
Features include:
- Supports GeoJSON FeatureCollections or GeoJSON Features separated by a newline
- Point and LineString features present in the input are ignored
- Supports GeometryCollections and MultiPolygons with options to label each part (
--collections=explode
), only the largest part (--collections=largest
), or treat all parts as one (--collections=combine
) - Label placement algorithm supported are:
- polylabel pole of inaccessibility, the most distant internal point from the polygon outline
- center, simple center by finding the midpoint between the extents of the polygon
- center of mass, imagine the polygon is a sheet of paper, finds where the sheet would balance on a fingertip
- center mean, takes the average of all the coordinates, unlike center it is sensitive to clusters and outliers
- center median, takes the mean center and tries to find, iteratively, a new point that requires the least amount of travel from all points in the polygon. not as sensitive to outliers as center-mean
- centroid, find the mean of all the verticies within the polygon
- point in polygon, finds an arbitrary point guaranteed to be within the polygon
- Source feature properties are retained
- Optionally adds an
_area
property (in m²) (--include-area
) - Optionally adds a
_bbox
property ([west, south, east, north]
) (--include-bbox
) - Optionally adds a
tippecanoe
minzoom to each label (--include-minzoom
)
Install
npm install --global geojson-polygon-labels
Command Line
geojson-polygon-labels [--polylabel-precision=0.001] [--coordinate-precision=5] [--include-area] [--include-bbox] [--method=polylabel] [--collections=explode] [--include-minzoom=0-16] [--verbose] layer.geojson > labels.geojson
--polylabel-precision
Polylabel precision. Defaults to0.000001
.--coordinate-precision
Output coordinate precision. Defaults to5
.--method
Label placement algorithm. Options arepolylabel
,centroid
,center-of-mass
,center-mean
,center-median
,centroid
,point-in-polygon
.--include-area
Adds an_area
property in m².--include-bbox
Adds a_bbox
property as[west, south, east, north]
--include-minzoom
will try to determine a suitable minzoom for the label to appear at and save it in thetippecanoe
key for use in tippecanoe. Value in the form min-max where min is the smallest minzoom and max the largest minzoom.--collections
How to place labels for GeometryCollections or Multi* Geometry types. Options areexplode
,largest
,combine
.--input-format
Input format. Options aregeojson
,geojsonseq
.--output-format
Output format. Options aregeojson
,geojsonseq
.