Skip to content

Command line tool to generate point labels from GeoJSON polygons

License

Notifications You must be signed in to change notification settings

andrewharvey/geojson-polygon-labels

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 to 0.000001.
  • --coordinate-precision Output coordinate precision. Defaults to 5.
  • --method Label placement algorithm. Options are polylabel, 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 the tippecanoe 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 are explode, largest, combine.
  • --input-format Input format. Options are geojson, geojsonseq.
  • --output-format Output format. Options are geojson, geojsonseq.

About

Command line tool to generate point labels from GeoJSON polygons

Resources

License

Stars

Watchers

Forks

Packages

No packages published