Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [Unreleased]

### Fixed

- Crossing latitude for flat geometries ([#188](https://github.com/gadomski/antimeridian/pull/188))

## [0.4.3] - 2025-07-25

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion src/antimeridian/_implementation.py
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ def crossing_latitude_great_circle(start: XY, end: XY) -> float:

def crossing_latitude_flat(start: XY, end: XY) -> float:
latitude_delta = end[1] - start[1]
if end[0] > 0:
if end[0] < 0:
return round(
start[1]
+ (180.0 - start[0]) * latitude_delta / (end[0] + 360.0 - start[0]),
Expand Down
11 changes: 11 additions & 0 deletions tests/data/input/issues-187.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"type": "Polygon",
"coordinates": [
[
[177.6545884597184, 67.05574774066811],
[179.0195867605756, 65.33232820668778],
[198.4723636216472, 66.06909015550372],
[198.7828129097253, 68.14247939909886]
]
]
}
2 changes: 1 addition & 1 deletion tests/data/output/flat/force-north-pole.json

Large diffs are not rendered by default.

54 changes: 1 addition & 53 deletions tests/data/output/flat/great-circle.json
Original file line number Diff line number Diff line change
@@ -1,53 +1 @@
{
"type": "MultiPolygon",
"coordinates": [
[
[
[
180.0,
-65.7501218
],
[
179.45,
-65.5
],
[
178.3,
-66.0
],
[
179.75,
-66.5
],
[
180.0,
-66.2497739
],
[
180.0,
-65.7501218
]
]
],
[
[
[
-180.0,
-66.2497739
],
[
-179.1,
-66.0
],
[
-180.0,
-65.7501218
],
[
-180.0,
-66.2497739
]
]
]
]
}
{"type": "MultiPolygon", "coordinates": [[[[180.0, -65.6896552], [179.45, -65.5], [178.3, -66.0], [179.75, -66.5], [180.0, -66.3913043], [180.0, -65.6896552]]], [[[-180.0, -66.3913043], [-179.1, -66.0], [-180.0, -65.6896552], [-180.0, -66.3913043]]]]}
2 changes: 1 addition & 1 deletion tests/data/output/flat/issues-124.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"type": "Polygon", "coordinates": [[[180.0, -14.698414], [179.214949, -15.093498], [177.542215, -15.869801], [175.86005899999998, -16.631684], [174.16797299999996, -17.378496], [172.46547599999997, -18.10959], [170.752112, -18.824321], [169.02745300000004, -19.52205], [167.29110300000002, -20.202141], [165.54269999999997, -20.863961], [163.78191800000002, -21.506881], [162.00847199999998, -22.130275], [160.22211900000002, -22.733521], [158.42266, -23.316001], [156.60994800000003, -23.877103], [154.783882, -24.416219], [152.94442000000004, -24.932748], [151.09157300000004, -25.426095], [149.225413, -25.895676], [147.346071, -26.340915], [145.45374400000003, -26.761247], [143.54868899999997, -27.156122], [141.631233, -27.525003], [139.70176600000002, -27.867371], [137.760745, -28.182725], [135.808693, -28.470586], [133.84619599999996, -28.730497], [131.87390500000004, -28.962029], [129.89253099999996, -29.164777], [127.90283999999997, -29.33837], [125.90565500000002, -29.482468], [123.90184599999998, -29.596765], [121.89232800000002, -29.680993], [119.87805600000002, -29.734922], [117.86001499999998, -29.758364], [115.83921900000001, -29.751171], [113.81669899999997, -29.713241], [111.793499, -29.644516], [109.770669, -29.544984], [107.749255, -29.414681], [105.73029200000002, -29.253689], [103.71480099999997, -29.062138], [101.703777, -28.840204], [99.69818299999997, -28.588113], [97.69894799999997, -28.306134], [95.706955, -27.994585], [93.72304099999997, -27.653826], [91.74799200000001, -27.284263], [89.782534, -26.886341], [87.827336, -26.460549], [85.88300600000002, -26.007412], [83.950084, -25.527493], [82.02904699999999, -25.021391], [80.12030700000003, -24.489736], [78.22420799999998, -23.933193], [76.34102899999999, -23.352451], [74.47098399999999, -22.748229], [72.614226, -22.121273], [70.77084100000002, -21.472348], [68.94086199999998, -20.802242], [67.12425999999999, -20.111762], [65.320953, -19.401734], [63.53080700000001, -18.672995], [61.753637999999995, -17.9264], [59.989217999999994, -17.162813], [58.237273000000016, -16.383109], [56.497488000000004, -15.588172], [54.769514000000015, -14.778892], [53.052964, -13.956165], [51.34742, -13.12089], [49.652434, -12.273971], [47.967532000000006, -11.41631], [46.292214, -10.548811], [44.62595999999999, -9.672376], [42.96822800000001, -8.787904], [41.31845899999999, -7.896293], [39.67607699999999, -6.998433], [38.040493, -6.095211], [36.411103999999995, -5.187508], [34.78729799999999, -4.276195], [33.16845000000001, -3.362138], [31.553931000000006, -2.446193], [29.943101000000013, -1.529207], [28.335316000000006, -0.612019], [26.729929, 0.304545], [25.126285999999993, 1.219666], [23.523732999999993, 2.132539], [21.921615000000003, 3.042366], [20.319274000000007, 3.948364], [18.716052999999988, 4.849757], [17.1113, 5.745783], [15.504359999999991, 6.635689], [13.894585000000006, 7.518732], [12.281331999999992, 8.394181], [10.663961, 9.261312], [9.041841000000005, 10.119414], [7.414346999999992, 10.967783], [5.780866000000003, 11.805723], [4.140794, 12.632548], [2.493539999999996, 13.447577], [0.8385269999999991, 14.250138], [-0.8248069999999927, 15.039565], [-2.4970069999999964, 15.815198], [-4.178595999999999, 16.576382], [-5.870077000000009, 17.322467], [-7.571931000000006, 18.052808], [-9.284607999999992, 18.766764], [-11.008534999999995, 19.463698], [-12.744102999999996, 20.142976], [-14.491671999999994, 20.803969], [-16.251564000000002, 21.44605], [-18.024062000000015, 22.068596], [-19.809406999999993, 22.670989], [-21.607794000000013, 23.252614], [-23.419371000000012, 23.812863], [-25.24423200000001, 24.35113], [-27.082423000000006, 24.866819], [-28.93392800000001, 25.359339], [-30.798676999999998, 25.828108], [-32.676536, 26.272555], [-34.567312000000015, 26.692118], [-36.470744999999994, 27.086251], [-38.38651200000001, 27.454422], [-40.314223999999996, 27.796113], [-42.25342699999999, 28.110828], [-44.20360099999999, 28.398091], [-46.164162000000005, 28.657449], [-48.134465000000006, 28.888475], [-50.11380500000001, 29.090767], [-52.101417999999995, 29.263957], [-54.09648899999999, 29.407707], [-56.098153999999994, 29.521712], [-58.105503999999996, 29.605708], [-60.117593, 29.659465], [-62.13344000000001, 29.682796], [-64.152041, 29.675554], [-66.172372, 29.637637], [-68.193396, 29.568988], [-70.214071, 29.469595], [-72.233359, 29.339491], [-74.25023, 29.178759], [-76.263673, 28.987525], [-78.272698, 28.765967], [-80.276348, 28.514305], [-82.273701, 28.232809], [-84.263878, 27.921791], [-86.246047, 27.581612], [-88.219426, 27.212671], [-90.183293, 26.815412], [-92.136981, 26.390319], [-94.079886, 25.937915], [-96.011468, 25.458758], [-97.931251, 24.953444], [-99.838825, 24.422599], [-101.733844, 23.866882], [-103.61603, 23.286982], [-105.485167, 22.683612], [-107.341102, 22.057513], [-109.183745, 21.409449], [-111.013063, 20.740203], [-112.82908, 20.050579], [-114.631877, 19.341398], [-116.421584, 18.613496], [-118.198382, 17.867724], [-119.962496, 17.104942], [-121.714197, 16.326024], [-123.453794, 15.531851], [-125.181634, 14.723309], [-126.898101, 13.901294], [-128.603608, 13.066701], [-130.298601, 12.220432], [-131.983548, 11.363389], [-133.658947, 10.496472], [-135.325315, 9.620583], [-136.98319, 8.736619], [-138.633128, 7.845477], [-140.275702, 6.948045], [-141.911499, 6.045211], [-143.541118, 5.137852], [-145.165171, 4.226841], [-146.784279, 3.313042], [-148.39907, 2.39731], [-150.010182, 1.480493], [-151.618256, 0.563429], [-153.223941, -0.353057], [-154.827888, -1.268146], [-156.430751, -2.181032], [-158.033185, -3.09092], [-159.635847, -3.997022], [-161.239394, -4.898567], [-162.844481, -5.794788], [-164.451761, -6.684935], [-166.061883, -7.568263], [-167.675494, -8.44404], [-169.293233, -9.311543], [-170.915733, -10.170058], [-172.543622, -11.01888], [-174.177514, -11.857314], [-175.818017, -12.68467], [-177.465723, -13.500268], [-179.121213, -14.303433], [-180.0, -14.698414], [-180.0, -90.0], [180.0, -90.0], [180.0, -14.698414]]]}
{"type": "Polygon", "coordinates": [[[-180.0, -90.0], [180.0, -90.0], [180.0, -14.7207205], [179.214949, -15.093498], [177.542215, -15.869801], [175.86005899999998, -16.631684], [174.16797299999996, -17.378496], [172.46547599999997, -18.10959], [170.752112, -18.824321], [169.02745300000004, -19.52205], [167.29110300000002, -20.202141], [165.54269999999997, -20.863961], [163.78191800000002, -21.506881], [162.00847199999998, -22.130275], [160.22211900000002, -22.733521], [158.42266, -23.316001], [156.60994800000003, -23.877103], [154.783882, -24.416219], [152.94442000000004, -24.932748], [151.09157300000004, -25.426095], [149.225413, -25.895676], [147.346071, -26.340915], [145.45374400000003, -26.761247], [143.54868899999997, -27.156122], [141.631233, -27.525003], [139.70176600000002, -27.867371], [137.760745, -28.182725], [135.808693, -28.470586], [133.84619599999996, -28.730497], [131.87390500000004, -28.962029], [129.89253099999996, -29.164777], [127.90283999999997, -29.33837], [125.90565500000002, -29.482468], [123.90184599999998, -29.596765], [121.89232800000002, -29.680993], [119.87805600000002, -29.734922], [117.86001499999998, -29.758364], [115.83921900000001, -29.751171], [113.81669899999997, -29.713241], [111.793499, -29.644516], [109.770669, -29.544984], [107.749255, -29.414681], [105.73029200000002, -29.253689], [103.71480099999997, -29.062138], [101.703777, -28.840204], [99.69818299999997, -28.588113], [97.69894799999997, -28.306134], [95.706955, -27.994585], [93.72304099999997, -27.653826], [91.74799200000001, -27.284263], [89.782534, -26.886341], [87.827336, -26.460549], [85.88300600000002, -26.007412], [83.950084, -25.527493], [82.02904699999999, -25.021391], [80.12030700000003, -24.489736], [78.22420799999998, -23.933193], [76.34102899999999, -23.352451], [74.47098399999999, -22.748229], [72.614226, -22.121273], [70.77084100000002, -21.472348], [68.94086199999998, -20.802242], [67.12425999999999, -20.111762], [65.320953, -19.401734], [63.53080700000001, -18.672995], [61.753637999999995, -17.9264], [59.989217999999994, -17.162813], [58.237273000000016, -16.383109], [56.497488000000004, -15.588172], [54.769514000000015, -14.778892], [53.052964, -13.956165], [51.34742, -13.12089], [49.652434, -12.273971], [47.967532000000006, -11.41631], [46.292214, -10.548811], [44.62595999999999, -9.672376], [42.96822800000001, -8.787904], [41.31845899999999, -7.896293], [39.67607699999999, -6.998433], [38.040493, -6.095211], [36.411103999999995, -5.187508], [34.78729799999999, -4.276195], [33.16845000000001, -3.362138], [31.553931000000006, -2.446193], [29.943101000000013, -1.529207], [28.335316000000006, -0.612019], [26.729929, 0.304545], [25.126285999999993, 1.219666], [23.523732999999993, 2.132539], [21.921615000000003, 3.042366], [20.319274000000007, 3.948364], [18.716052999999988, 4.849757], [17.1113, 5.745783], [15.504359999999991, 6.635689], [13.894585000000006, 7.518732], [12.281331999999992, 8.394181], [10.663961, 9.261312], [9.041841000000005, 10.119414], [7.414346999999992, 10.967783], [5.780866000000003, 11.805723], [4.140794, 12.632548], [2.493539999999996, 13.447577], [0.8385269999999991, 14.250138], [-0.8248069999999927, 15.039565], [-2.4970069999999964, 15.815198], [-4.178595999999999, 16.576382], [-5.870077000000009, 17.322467], [-7.571931000000006, 18.052808], [-9.284607999999992, 18.766764], [-11.008534999999995, 19.463698], [-12.744102999999996, 20.142976], [-14.491671999999994, 20.803969], [-16.251564000000002, 21.44605], [-18.024062000000015, 22.068596], [-19.809406999999993, 22.670989], [-21.607794000000013, 23.252614], [-23.419371000000012, 23.812863], [-25.24423200000001, 24.35113], [-27.082423000000006, 24.866819], [-28.93392800000001, 25.359339], [-30.798676999999998, 25.828108], [-32.676536, 26.272555], [-34.567312000000015, 26.692118], [-36.470744999999994, 27.086251], [-38.38651200000001, 27.454422], [-40.314223999999996, 27.796113], [-42.25342699999999, 28.110828], [-44.20360099999999, 28.398091], [-46.164162000000005, 28.657449], [-48.134465000000006, 28.888475], [-50.11380500000001, 29.090767], [-52.101417999999995, 29.263957], [-54.09648899999999, 29.407707], [-56.098153999999994, 29.521712], [-58.105503999999996, 29.605708], [-60.117593, 29.659465], [-62.13344000000001, 29.682796], [-64.152041, 29.675554], [-66.172372, 29.637637], [-68.193396, 29.568988], [-70.214071, 29.469595], [-72.233359, 29.339491], [-74.25023, 29.178759], [-76.263673, 28.987525], [-78.272698, 28.765967], [-80.276348, 28.514305], [-82.273701, 28.232809], [-84.263878, 27.921791], [-86.246047, 27.581612], [-88.219426, 27.212671], [-90.183293, 26.815412], [-92.136981, 26.390319], [-94.079886, 25.937915], [-96.011468, 25.458758], [-97.931251, 24.953444], [-99.838825, 24.422599], [-101.733844, 23.866882], [-103.61603, 23.286982], [-105.485167, 22.683612], [-107.341102, 22.057513], [-109.183745, 21.409449], [-111.013063, 20.740203], [-112.82908, 20.050579], [-114.631877, 19.341398], [-116.421584, 18.613496], [-118.198382, 17.867724], [-119.962496, 17.104942], [-121.714197, 16.326024], [-123.453794, 15.531851], [-125.181634, 14.723309], [-126.898101, 13.901294], [-128.603608, 13.066701], [-130.298601, 12.220432], [-131.983548, 11.363389], [-133.658947, 10.496472], [-135.325315, 9.620583], [-136.98319, 8.736619], [-138.633128, 7.845477], [-140.275702, 6.948045], [-141.911499, 6.045211], [-143.541118, 5.137852], [-145.165171, 4.226841], [-146.784279, 3.313042], [-148.39907, 2.39731], [-150.010182, 1.480493], [-151.618256, 0.563429], [-153.223941, -0.353057], [-154.827888, -1.268146], [-156.430751, -2.181032], [-158.033185, -3.09092], [-159.635847, -3.997022], [-161.239394, -4.898567], [-162.844481, -5.794788], [-164.451761, -6.684935], [-166.061883, -7.568263], [-167.675494, -8.44404], [-169.293233, -9.311543], [-170.915733, -10.170058], [-172.543622, -11.01888], [-174.177514, -11.857314], [-175.818017, -12.68467], [-177.465723, -13.500268], [-179.121213, -14.303433], [-180.0, -14.7207205], [-180.0, -90.0]]]}
Loading