switch to subtags for tourism=information and natural=water

This commit is contained in:
Sarah Hoffmann
2024-12-09 17:12:35 +01:00
parent e2a9b5fdf7
commit b1e5265d33
2 changed files with 87 additions and 3 deletions

View File

@@ -16,6 +16,43 @@ local function filter_footways(place)
return false
end
local function include_when_tag_present(key, value, named)
if named then
return function(place)
if place.has_name and place.intags[key] == value then
return place
end
return false
end
else
return function(place)
if place.intags[key] == value then
return place
end
return false
end
end
end
local function exclude_when_key_present(key, named)
if named then
return function(place)
if place.has_name and place.intags[key] == nil then
return place
end
return false
end
else
return function(place)
if place.intags[key] == nil then
return place
end
return false
end
end
end
-- Main tag definition
module.MAIN_TAGS = {}
@@ -65,9 +102,21 @@ module.MAIN_TAGS.natural = {
yes = 'delete',
no = 'delete',
coastline = 'delete',
saddle = 'fallback'},
saddle = 'fallback',
water = exclude_when_key_present('water', true)},
mountain_pass = {'always',
no = 'delete'}
no = 'delete'},
water = {include_when_tag_present('natural', 'water', true),
river = 'never',
stream = 'never',
canal = 'never',
ditch = 'never',
drain = 'never',
fish_pass = 'never',
yes = 'delete',
intermittent = 'delete',
tidal = 'delete'
}
}
module.MAIN_TAGS_POIS = function (group)
@@ -114,6 +163,7 @@ module.MAIN_TAGS_POIS = function (group)
historic = {'always',
yes = group,
no = group},
information = {include_when_tag_present('tourism', 'information')},
junction = {'fallback',
no = group},
leisure = {'always',
@@ -148,7 +198,8 @@ module.MAIN_TAGS_POIS = function (group)
no = group},
tourism = {'always',
no = group,
yes = group},
yes = group,
information = 'fallback'},
tunnel = {'named_with_key',
no = group}
} end

View File

@@ -223,3 +223,36 @@ Feature: Tag evaluation
| object | name+name |
| W2 | Road |
| W5 | Road |
Scenario: Tourism information
When loading osm data
"""
n100 Ttourism=information
n101 Ttourism=information,name=Generic
n102 Ttourism=information,information=guidepost
n103 Thighway=information,information=house
"""
Then place contains exactly
| object | type |
| N101:tourism | information |
| N102:information | guidepost |
| N103:highway | information |
Scenario: Water feautures
When loading osm data
"""
n20 Tnatural=water
n21 Tnatural=water,name=SomePond
n22 Tnatural=water,water=pond
n23 Tnatural=water,water=pond,name=Pond
n24 Tnatural=water,water=river,name=BigRiver
n25 Tnatural=water,water=yes
n26 Tnatural=water,water=yes,name=Random
"""
Then place contains exactly
| object | type |
| N21:natural | water |
| N23:water | pond |
| N26:natural | water |