diff --git a/test/route_relation.osm b/test/route_relation.osm
index 608a5af..9050239 100644
--- a/test/route_relation.osm
+++ b/test/route_relation.osm
@@ -140,4 +140,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/route_relation_test.go b/test/route_relation_test.go
index ae7a587..ed3181c 100644
--- a/test/route_relation_test.go
+++ b/test/route_relation_test.go
@@ -60,7 +60,7 @@ func TestRouteRelation_MemberGeomUpdated1(t *testing.T) {
t.Fatal(rows)
}
g := ts.g.FromWkt(rows[0]["wkt"])
- if math.Abs(g.Length() - 111.32448543701321) > 0.00000001 {
+ if math.Abs(g.Length()-111.32448543701321) > 0.00000001 {
t.Fatal(g.Length())
}
@@ -73,6 +73,14 @@ func TestRouteRelation_MemberGeomUpdated1(t *testing.T) {
}
}
+func TestRouteRelation_NoRouteWithMissingMember(t *testing.T) {
+ // current implementation: route members are all or nothing.
+ // if one member is missing, no member is imported
+ if r := ts.queryDynamic(t, "osm_route_members", "osm_id = -120901 AND member = 120101"); len(r) > 0 {
+ t.Error("found member from route with missing members")
+ }
+}
+
// #######################################################################
func TestRouteRelation_Update(t *testing.T) {
@@ -87,7 +95,7 @@ func TestRouteRelation_MemberGeomUpdated2(t *testing.T) {
t.Fatal(rows)
}
g := ts.g.FromWkt(rows[0]["wkt"])
- if math.Abs(g.Length() - 184.97560221624542) > 0.00000001 {
+ if math.Abs(g.Length()-184.97560221624542) > 0.00000001 {
t.Fatal(g.Length())
}
diff --git a/writer/relations.go b/writer/relations.go
index 1925c87..311e193 100644
--- a/writer/relations.go
+++ b/writer/relations.go
@@ -225,10 +225,10 @@ func handleRelationMembers(rw *RelationWriter, r *element.Relation, geos *geosp.
if m.Type == element.RELATION {
mrel, err := rw.osmCache.Relations.GetRelation(m.Id)
if err != nil {
- if err == cache.NotFound {
+ if err != cache.NotFound {
log.Warn(err)
- return false
}
+ return false
}
r.Members[i].Elem = &mrel.OSMElem
} else if m.Type == element.NODE {