Union can't join touching polygons on anti-meridian
Open
Nobody has claimed this yet.
@turf/union
- Dominant language
- TypeScript
- Stars
- 10.5k
- Forks
- 1k
- Avg merge
- 1h 11m
- Merged PRs (30d)
- 4
Description
Turf 7.1.0
Union can't join touching polygons on anti-meridian unless coordinates are adjusted by 360.
// CORRECT - produces {"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-183,67.35710304434852],[-180,64.8381209933682],[-173,67.35710304434852],[-180,69.40628708036891],[-183,67.35710304434852]]]}}
union(featureCollection([polygon([
[
[-180, 64.8381209933682],
[-185, 67.35710304434852],
[-180, 69.40628708036891],
[-180, 64.8381209933682],
],
]), polygon([
[
[-180, 64.8381209933682],
[-173, 67.35710304434852],
[-180, 69.40628708036891],
[-180, 64.8381209933682],
]
])]));
// INCORRECT - produces {"type":"Feature","properties":{},"geometry":{"type":"MultiPolygon","coordinates":[[[[-180,64.8381209933682],[-173,67.35710304434852],[-180,69.40628708036891],[-180,64.8381209933682]]],[[[173,67.35710304434852],[180,64.8381209933682],[180,69.40628708036891],[173,67.35710304434852]]]]}}
union(featureCollection([polygon([
[
[180, 64.8381209933682],
[175, 67.35710304434852],
[180, 69.40628708036891],
[180, 64.8381209933682]
]
]), polygon([
[
[-180, 64.8381209933682],
[-173, 67.35710304434852],
[-180, 69.40628708036891],
[-180, 64.8381209933682],
]
])]));
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided union(featureCollection(...)) reproduction in Turf 7.1.0 and compare the incorrect anti-meridian result with the expected single Polygon. Done means touching polygons on opposite sides of the anti-meridian union correctly without requiring coordinates to be adjusted by 360.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- data
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100