diff --git a/lib-lua/themes/nominatim/presets.lua b/lib-lua/themes/nominatim/presets.lua index f230433e8..4f4fe8630 100644 --- a/lib-lua/themes/nominatim/presets.lua +++ b/lib-lua/themes/nominatim/presets.lua @@ -53,6 +53,17 @@ local function exclude_when_key_present(key, named) end end +local function lock_transform(place) + if place.object.tags.waterway ~= nil then + local name = place.object.tags.lock_name + if name ~= nil then + return place:clone{names={name=name, ref=place.object.tags.lock_ref}} + end + end + + return false +end + -- Main tag definition module.MAIN_TAGS = {} @@ -169,6 +180,7 @@ module.MAIN_TAGS_POIS = function (group) leisure = {'always', nature_reserve = 'fallback', no = group}, + lock = {yes = lock_transform}, man_made = {pier = 'always', tower = 'always', bridge = 'always', diff --git a/test/bdd/osm2pgsql/import/tags.feature b/test/bdd/osm2pgsql/import/tags.feature index 2a7673b75..f4ebe7adf 100644 --- a/test/bdd/osm2pgsql/import/tags.feature +++ b/test/bdd/osm2pgsql/import/tags.feature @@ -269,3 +269,18 @@ Feature: Tag evaluation | N1:place | house | 'housenumber': '23' | - | | N2:place | house | 'housenumber': '23' | 'addr:housename': 'Foo' | | N3:place | house | 'housenumber': '23' | - | + + + Scenario: Waterway locks + When loading osm data + """ + n1 Twaterway=river,lock=yes + n2 Twaterway=river,lock=yes,lock_name=LeLock + n3 Twaterway=river,lock=yes,name=LeWater + n4 Tamenity=parking,lock=yes,lock_name=Gold + """ + Then place contains exactly + | object | type | name | + | N2:lock | yes | 'name': 'LeLock' | + | N3:waterway | river | 'name': 'LeWater' | + | N4:amenity | parking | - |