From 45e4a6a1f6fe0e89740b0458ac174c05983d080e Mon Sep 17 00:00:00 2001 From: MichalPP Date: Sat, 19 May 2018 11:28:46 +0200 Subject: [PATCH] create filter_relations function --- profiles/lib/relations.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/profiles/lib/relations.lua b/profiles/lib/relations.lua index f061b5780..169374890 100644 --- a/profiles/lib/relations.lua +++ b/profiles/lib/relations.lua @@ -258,4 +258,18 @@ function Relations.process_way_refs(way, relations, result) end end +function Relations.filter_relations(relations, way, key, value, ret, forward) + -- if any of way's relation have key=value, return tag ret; else return nil + -- todo: check backward and forward + if not forward then forward = 'forward'; end -- ignored at the moment + local rel_id_list = relations:get_relations(way) + for i, rel_id in ipairs(rel_id_list) do + local rel = relations:relation(rel_id); + local p = rel:get_value_by_key(key); + if value == '*' and p then return rel:get_value_by_key(ret); end + if p == value then return rel:get_value_by_key(ret); end + end + return nil; +end + return Relations