locode: Use quadtree to find continent #830

Closed
Nesterfifa wants to merge 6 commits from Nesterfifa/frostfs-node:782-use-quadtree into master
Showing only changes of commit f31b4c1a7b - Show all commits

View file

@ -92,7 +92,14 @@ func (db *DB) buildQuadtree() error {
}) })
for _, feature := range db.features { for _, feature := range db.features {
Is there a way to simplify this code? https://git.frostfs.info/TrueCloudLab/frostfs-node/src/commit/cff78d77c22b788a398a958a9a9d1f02b43b6148/pkg/util/locode/db/continents/geojson/calls.go#L94-L110

Reduced the nesting depth to 2

Reduced the nesting depth to 2
if multiPolygon, ok := feature.Geometry.(orb.MultiPolygon); ok { multiPolygon := make(orb.MultiPolygon, 0)
fyrchik marked this conversation as resolved
Review

What about var multiPolygon orb.MultiPolygon? make(_, 0) is usually never needed: nil acts good enough as the default value.

What about `var multiPolygon orb.MultiPolygon`? `make(_, 0)` is usually never needed: `nil` acts good enough as the default value.
Review

Fixed

Fixed
if polygon, ok := feature.Geometry.(orb.Polygon); ok {
multiPolygon = append(multiPolygon, polygon)
} else {
multiPolygon = feature.Geometry.(orb.MultiPolygon)
}
for _, polygon := range multiPolygon { for _, polygon := range multiPolygon {
newFeature := geojson.NewFeature(polygon) newFeature := geojson.NewFeature(polygon)
newFeature.Properties = feature.Properties.Clone() newFeature.Properties = feature.Properties.Clone()
@ -101,12 +108,6 @@ func (db *DB) buildQuadtree() error {
return err return err
} }
} }
} else if _, ok := feature.Geometry.(orb.Polygon); ok {
err := db.tree.Add(feature)
if err != nil {
return err
}
}
} }
return nil return nil