locode: Use quadtree to find continent #830
1 changed files with 12 additions and 11 deletions
|
@ -92,17 +92,18 @@ func (db *DB) buildQuadtree() error {
|
|||
})
|
||||
|
||||
for _, feature := range db.features {
|
||||
if multiPolygon, ok := feature.Geometry.(orb.MultiPolygon); ok {
|
||||
for _, polygon := range multiPolygon {
|
||||
newFeature := geojson.NewFeature(polygon)
|
||||
newFeature.Properties = feature.Properties.Clone()
|
||||
err := db.tree.Add(newFeature)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else if _, ok := feature.Geometry.(orb.Polygon); ok {
|
||||
err := db.tree.Add(feature)
|
||||
multiPolygon := make(orb.MultiPolygon, 0)
|
||||
fyrchik marked this conversation as resolved
|
||||
|
||||
if polygon, ok := feature.Geometry.(orb.Polygon); ok {
|
||||
multiPolygon = append(multiPolygon, polygon)
|
||||
} else {
|
||||
multiPolygon = feature.Geometry.(orb.MultiPolygon)
|
||||
}
|
||||
|
||||
for _, polygon := range multiPolygon {
|
||||
newFeature := geojson.NewFeature(polygon)
|
||||
newFeature.Properties = feature.Properties.Clone()
|
||||
err := db.tree.Add(newFeature)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue
What about
var multiPolygon orb.MultiPolygon
?make(_, 0)
is usually never needed:nil
acts good enough as the default value.Fixed