diff --git a/pkg/util/locode/db/continents/geojson/calls.go b/pkg/util/locode/db/continents/geojson/calls.go index 06842e336..fe212701d 100644 --- a/pkg/util/locode/db/continents/geojson/calls.go +++ b/pkg/util/locode/db/continents/geojson/calls.go @@ -31,7 +31,10 @@ func (db *DB) PointContinent(point *locodedb.Point) (*locodedb.Continent, error) planarPoint := orb.Point{point.Longitude(), point.Latitude()} - var continent string + var ( + continent string + minDst float64 + ) for _, feature := range db.features { if multiPolygon, ok := feature.Geometry.(orb.MultiPolygon); ok { @@ -45,6 +48,11 @@ func (db *DB) PointContinent(point *locodedb.Point) (*locodedb.Continent, error) break } } + distance := planar.DistanceFrom(feature.Geometry, planarPoint) + if minDst == 0 || minDst > distance { + minDst = distance + continent = feature.Properties.MustString(continentProperty) + } } c := continentFromString(continent)