supress errors for incomplete rings

master
Oliver Tonnhofer 2013-05-17 13:05:59 +02:00
parent decb17cb4c
commit 37b228f54e
3 changed files with 8 additions and 4 deletions

View File

@ -25,6 +25,7 @@ func NewGeomError(message string, level int) *GeomError {
var (
ErrorOneNodeWay = NewGeomError("need at least two separate nodes for way", 0)
ErrorNoRing = NewGeomError("linestrings do not form ring", 0)
)
func PointWKB(g *geos.GEOS, node element.Node) (*element.Geometry, error) {

View File

@ -59,9 +59,7 @@ func BuildRings(rel *element.Relation) ([]*Ring, error) {
// create geometries for merged rings
for _, ring := range mergedRings {
if !ring.IsClosed() {
return nil, errors.New(
fmt.Sprintf("linestrings from relation %d do not form a ring", rel.Id),
)
return nil, ErrorNoRing
}
ring.geom, err = Polygon(g, ring.nodes)
if err != nil {

View File

@ -310,7 +310,12 @@ func main() {
err = geom.BuildRelation(r)
if err != nil {
fmt.Println(err)
if err, ok := err.(ErrorLevel); ok {
if err.Level() <= 0 {
continue
}
}
log.Println(err)
continue
}
if matches := polygons.Match(r.OSMElem); len(matches) > 0 {