Skip to content

Commit af077fe

Browse files
committed
update: insert updated relation_members into generalized tables
fixes #293
1 parent 727bd00 commit af077fe

3 files changed

Lines changed: 77 additions & 0 deletions

File tree

database/postgis/postgis.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,17 @@ func (pg *PostGIS) InsertRelationMember(rel osm.Relation, m osm.Member, mi int,
485485
return err
486486
}
487487
}
488+
if pg.updateGeneralizedTables {
489+
genMatches := pg.generalizedFromMatches(matches)
490+
if len(genMatches) > 0 {
491+
pg.updateIDsMu.Lock()
492+
for _, generalizedTable := range genMatches {
493+
pg.updatedIDs[generalizedTable.Name] = append(pg.updatedIDs[generalizedTable.Name], rel.ID)
494+
495+
}
496+
pg.updateIDsMu.Unlock()
497+
}
498+
}
488499
return nil
489500
}
490501

test/complete_db_mapping.json

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@
5050
"source": "landusages_gen1",
5151
"sql_filter": "ST_Area(geometry)>500000.000000",
5252
"tolerance": 200.0
53+
},
54+
"relation_members_gen1": {
55+
"source": "relation_members",
56+
"sql_filter": null,
57+
"tolerance": 50.0
5358
}
5459
},
5560
"tables": {
@@ -875,6 +880,60 @@
875880
"swimming_pool"
876881
]
877882
}
883+
},
884+
"relation_members": {
885+
"columns": [
886+
{
887+
"type": "id",
888+
"name": "osm_id",
889+
"key": null
890+
},
891+
{
892+
"type": "validated_geometry",
893+
"name": "geometry",
894+
"key": null
895+
},
896+
{
897+
"type": "string",
898+
"name": "name",
899+
"key": "name"
900+
},
901+
{
902+
"type": "mapping_value",
903+
"name": "type",
904+
"key": null
905+
},
906+
{
907+
"name": "member",
908+
"type": "member_id"
909+
},
910+
{
911+
"name": "index",
912+
"type": "member_index"
913+
},
914+
{
915+
"name": "role",
916+
"type": "member_role"
917+
},
918+
{
919+
"name": "member_type",
920+
"type": "member_type"
921+
},
922+
{
923+
"type": "webmerc_area",
924+
"name": "area",
925+
"key": null
926+
}
927+
],
928+
"type": "relation_member",
929+
"mapping": {
930+
"natural": [
931+
"water"
932+
],
933+
"landuse": [
934+
"park"
935+
]
936+
}
878937
}
879938
}
880939
}

test/completedb_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,11 @@ func TestComplete(t *testing.T) {
115115

116116
{"osm_landusages_gen1", 11001, "park", nil},
117117
{"osm_landusages_gen1", -13001, "park", nil},
118+
119+
{"osm_relation_members", -13001, "park", nil},
120+
{"osm_relation_members_gen1", -13001, "park", nil},
118121
})
122+
119123
})
120124

121125
t.Run("ChangedHoleTags1", func(t *testing.T) {
@@ -527,6 +531,9 @@ func TestComplete(t *testing.T) {
527531

528532
{"osm_landusages_gen1", 11001, Missing, nil},
529533
{"osm_landusages_gen1", -13001, Missing, nil},
534+
535+
{"osm_relation_members", -13001, "water", nil},
536+
{"osm_relation_members_gen1", -13001, "water", nil},
530537
})
531538
})
532539

0 commit comments

Comments
 (0)