mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-03-15 12:24:29 +00:00
Fix CQ/ITU lookups for zones that cross the antemeridian
This commit is contained in:
@@ -40,11 +40,21 @@ def lat_lon_to_cq_zone(lat, lon):
|
||||
|
||||
# Finds out which ITU zone a lat/lon point is in.
|
||||
def lat_lon_to_itu_zone(lat, lon):
|
||||
lon = ((lon + 180) % 360) - 180
|
||||
for index, row in itu_zone_data.iterrows():
|
||||
polygon = Polygon(row["geometry"])
|
||||
test_point = Point(lon, lat)
|
||||
if polygon.contains(test_point):
|
||||
return int(row["name"])
|
||||
|
||||
# Might have problems around the antemeridian, so if we didn't find a match, try offsetting the point by + or -
|
||||
# 360 degrees longitude to try the other side of the Earth
|
||||
if lon < 0:
|
||||
test_point = Point(lon + 360, lat)
|
||||
else:
|
||||
test_point = Point(lon - 360, lat)
|
||||
if polygon.contains(test_point):
|
||||
return int(row["name"])
|
||||
return None
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user