LineString feature splits/breaks at tile edge
- Dominant language
- C++
- Stars
- 3.1k
- Forks
- 430
- PR merge metrics
- No merged PRs in 30d
Description
Originally posted in mapbox-gl-js: [https://github.com/mapbox/mapbox-gl-js/issues/11073#issuecomment-936331366](GL-JS Issue)
My sample dataset is generated from zoom level 14-16. On level 16, several lines deviate from the correct path somehow. Vladimir suggested I check with tippecanoe to see can be done. His comment was that the coordinates go past the maximum possible buffer and result in the line being shifted.
Is the line not "dense" enough with points?
Link to viewable failure: https://jsfiddle.net/alexthomaseog/u2q3ev5k
tippecanoe command:
```
tippecanoe -f -Q -P -l outputlayer -e /tmp/outputsource -b0 -r1 --drop-densest-as-needed -pc -ps -z16 -Z14 //tmp/output.geojson
```
`//tmp/output.geojson` :
```
{"geometry":{"type":"LineString","coordinates":[[-103.84333237,32.06315212],[-103.8424836,32.06298158],[-103.84409085,32.05280362],[-103.84304467,32.0526831]]},"type":"Feature","properties":{"shape_length":0.012222915323124061}}
{"geometry":{"type":"LineString","coordinates":[[-103.84386138,32.05356729],[-103.84232055,32.063333]]},"type":"Feature","properties":{"shape_length":0.009886512980288725}}
{"geometry":{"type":"LineString","coordinates":[[-103.84221115,32.0634072],[-103.84375238,32.05363809]]},"type":"Feature","properties":{"shape_length":0.009889933775552704}}
{"geometry":{"type":"LineString","coordinates":[[-103.84318992,32.0528697],[-103.84376815,32.0529419],[-103.84387915,32.0529591],[-103.84387495,32.0529911],[-103.84348885,32.05546468],[-103.84292098,32.05901744],[-103.84239231,32.06240941],[-103.84219655,32.0634386],[-103.84223295,32.0634426]]},"type":"Feature","properties":{"shape_length":0.011345890692680561}}
{"geometry":{"type":"LineString","coordinates":[[-103.84309571,32.0527825],[-103.84398175,32.0528997],[-103.84400035,32.0529261],[-103.84397935,32.0529421],[-103.84397376,32.0529631],[-103.84371242,32.05462848],[-103.84295301,32.05950124],[-103.84246472,32.06244421],[-103.84233655,32.0633358]]},"type":"Feature","properties":{"shape_length":0.011475483112780932}}
{"geometry":{"type":"LineString","coordinates":[[-103.84216241,32.063362],[-103.84382501,32.0528987],[-103.84305398,32.0528099]]},"type":"Feature","properties":{"shape_length":0.011370695476310786}}
{"geometry":{"type":"LineString","coordinates":[[-103.84309131,32.0527349],[-103.84395315,32.0528331],[-103.84362883,32.05490348],[-103.8429118,32.05941704],[-103.8424909,32.06204961],[-103.8424853,32.06206721],[-103.84219516,32.06371999]]},"type":"Feature","properties":{"shape_length":0.011895731314378741}}
```
Contributor guide
Research direction
Start by reproducing the supplied tippecanoe command with the provided GeoJSON and compare the affected LineString output at tile edges. Inspect the tile-edge clipping or buffering path; done means the lines no longer deviate or break at the edge while preserving the expected path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- data
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100