mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
flex: simplify name handling
This commit is contained in:
@@ -156,6 +156,28 @@ function Place:grab_name(data)
|
|||||||
return count
|
return count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Place:grab_name_parts(data)
|
||||||
|
local fallback = nil
|
||||||
|
|
||||||
|
if data.groups ~= nil then
|
||||||
|
for k, v in pairs(self.object.tags) do
|
||||||
|
local atype = data.groups(k, v)
|
||||||
|
|
||||||
|
if atype ~= nil then
|
||||||
|
self.names[k] = v
|
||||||
|
if atype == 'main' then
|
||||||
|
self.has_name = true
|
||||||
|
elseif atype == 'house' then
|
||||||
|
self.has_name = true
|
||||||
|
fallback = {'place', 'house', 'always'}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return fallback
|
||||||
|
end
|
||||||
|
|
||||||
function Place:grab_tag(key)
|
function Place:grab_tag(key)
|
||||||
return self.object:grab_tag(key)
|
return self.object:grab_tag(key)
|
||||||
end
|
end
|
||||||
@@ -401,8 +423,6 @@ function osm2pgsql.process_relation(object)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function process_tags(o)
|
function process_tags(o)
|
||||||
local fallback
|
|
||||||
|
|
||||||
o:delete{match = PRE_DELETE}
|
o:delete{match = PRE_DELETE}
|
||||||
o:grab_extratags{match = PRE_EXTRAS}
|
o:grab_extratags{match = PRE_EXTRAS}
|
||||||
|
|
||||||
@@ -413,10 +433,10 @@ function process_tags(o)
|
|||||||
end}
|
end}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- name keys
|
||||||
|
local fallback = o:grab_name_parts{groups=NAMES}
|
||||||
|
|
||||||
-- address keys
|
-- address keys
|
||||||
if o:grab_name{match=HOUSENAME_TAGS} > 0 then
|
|
||||||
fallback = {'place', 'house', 'always'}
|
|
||||||
end
|
|
||||||
if o:grab_address_parts{groups=ADDRESS_TAGS} > 0 and fallback == nil then
|
if o:grab_address_parts{groups=ADDRESS_TAGS} > 0 and fallback == nil then
|
||||||
fallback = {'place', 'house', 'always'}
|
fallback = {'place', 'house', 'always'}
|
||||||
end
|
end
|
||||||
@@ -432,10 +452,6 @@ function process_tags(o)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- name keys
|
|
||||||
o:grab_name{match = NAMES}
|
|
||||||
o:grab_name{match = REFS, include_on_name = false}
|
|
||||||
|
|
||||||
o:delete{match = POST_DELETE}
|
o:delete{match = POST_DELETE}
|
||||||
o:grab_extratags{match = POST_EXTRAS}
|
o:grab_extratags{match = POST_EXTRAS}
|
||||||
|
|
||||||
|
|||||||
@@ -91,8 +91,7 @@ PRE_EXTRAS = tag_match{keys = {'*:prefix', '*:suffix', 'name:prefix:*', 'name:su
|
|||||||
'addr:street:name', 'addr:street:type'}
|
'addr:street:name', 'addr:street:type'}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NAMES = key_group{main = {'name', 'name:*',
|
||||||
NAMES = tag_match{keys = {'name', 'name:*',
|
|
||||||
'int_name', 'int_name:*',
|
'int_name', 'int_name:*',
|
||||||
'nat_name', 'nat_name:*',
|
'nat_name', 'nat_name:*',
|
||||||
'reg_name', 'reg_name:*',
|
'reg_name', 'reg_name:*',
|
||||||
@@ -101,12 +100,12 @@ NAMES = tag_match{keys = {'name', 'name:*',
|
|||||||
'alt_name', 'alt_name:*', 'alt_name_*',
|
'alt_name', 'alt_name:*', 'alt_name_*',
|
||||||
'official_name', 'official_name:*',
|
'official_name', 'official_name:*',
|
||||||
'place_name', 'place_name:*',
|
'place_name', 'place_name:*',
|
||||||
'short_name', 'short_name:*', 'brand'}}
|
'short_name', 'short_name:*', 'brand'},
|
||||||
|
extra = {'ref', 'int_ref', 'nat_ref', 'reg_ref',
|
||||||
REFS = tag_match{keys = {'ref', 'int_ref', 'nat_ref', 'reg_ref', 'loc_ref', 'old_ref',
|
'loc_ref', 'old_ref',
|
||||||
'iata', 'icao', 'pcode', 'pcode:*', 'ISO3166-2'}}
|
'iata', 'icao', 'pcode', 'pcode:*', 'ISO3166-2'},
|
||||||
|
house = {'addr:housename'}
|
||||||
HOUSENAME_TAGS = tag_match{keys = {'addr:housename'}}
|
}
|
||||||
|
|
||||||
ADDRESS_TAGS = key_group{main = {'addr:housenumber',
|
ADDRESS_TAGS = key_group{main = {'addr:housenumber',
|
||||||
'addr:conscriptionnumber',
|
'addr:conscriptionnumber',
|
||||||
|
|||||||
Reference in New Issue
Block a user