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 = {}
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)
historic = {'always',
yes = group,
no = group},
+ information = {include_when_tag_present('tourism', 'information')},
junction = {'fallback',
no = group},
leisure = {'always',
no = group},
tourism = {'always',
no = group,
- yes = group},
+ yes = group,
+ information = 'fallback'},
tunnel = {'named_with_key',
no = group}
} end
| 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 |