npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

geojson-polygon-labels

v2.0.1

Published

Command line tool to generate point labels from GeoJSON polygons

Downloads

479

Readme

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.