Repository navigation
Remove unmaintained C++ implementation - #124
Merged
Merged
Conversation
mourner
approved these changes
Jun 8, 2026
jolars
added a commit
to jolars/polylabelr
that referenced
this pull request
Aug 9, 2026
Mapbox deleted their C++ implementation in mapbox/polylabel#124, so `polylabel.hpp` is now a local C++ port of their `polylabel.js` rather than vendored upstream code. It is kept structurally close to the JavaScript so that future upstream changes can be transliterated. The search now flattens the rings into one coordinate buffer, skips blocks of edges using precomputed bounding boxes, seeds each cell with its parent's nearest segment, and stops measuring once a cell cannot beat the best candidate. This runs 25 to 35 times faster on the upstream fixtures and reproduces their expected values exactly. The old header had been frozen since 2020 and never picked up the fix for mapbox/polylabel#97, so `poi()` could return a point outside the polygon when the precision was too coarse to refine the first guess. Unlike upstream we still search polygons smaller than the requested precision instead of returning a corner of their bounding box. `poi_cpp()` now takes the distance from the search rather than recomputing it with a second pass over the outline.
7 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It is out of date with the JavaScript implementation.