Import regions from administrative boundaries
This commit is contained in:
parent
ec53591ce0
commit
7e51976c06
|
@ -50,6 +50,9 @@ local MOTORWAY_TYPES = {
|
|||
"motorway_link",
|
||||
}
|
||||
|
||||
local ADMIN_LEVEL_MIN = 2
|
||||
local ADMIN_LEVEL_MAX = 8
|
||||
|
||||
local ONEWAY_YES = {"yes", "true", "1"}
|
||||
local ONEWAY_REVERSE = {"reverse", "-1"}
|
||||
|
||||
|
@ -63,6 +66,13 @@ local roads = osm2pgsql.define_way_table('road', {
|
|||
|
||||
local minspeed_rural = 60
|
||||
|
||||
local regions = osm2pgsql.define_relation_table('region', {
|
||||
{ column = 'name', type = 'text' },
|
||||
{ column = 'geometry', type = 'geometry' },
|
||||
{ column = 'admin_level', type = 'int' },
|
||||
{ column = 'tags', type = 'hstore' },
|
||||
})
|
||||
|
||||
function osm2pgsql.process_way(object)
|
||||
if object.tags.highway and contains(HIGHWAY_TYPES, object.tags.highway) then
|
||||
local tags = object.tags
|
||||
|
@ -131,3 +141,21 @@ function osm2pgsql.process_way(object)
|
|||
})
|
||||
end
|
||||
end
|
||||
|
||||
function osm2pgsql.process_relation(object)
|
||||
local admin_level = tonumber(object.tags.admin_level)
|
||||
if object.tags.boundary == "administrative" and admin_level and admin_level >= ADMIN_LEVEL_MIN and admin_level <= ADMIN_LEVEL_MAX then
|
||||
regions:add_row({
|
||||
geometry = { create = 'area' },
|
||||
name = object.tags.name,
|
||||
admin_level = admin_level,
|
||||
tags = object.tags,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
function osm2pgsql.select_relation_members(relation)
|
||||
if relation.tags.type == 'route' then
|
||||
return { ways = osm2pgsql.way_member_ids(relation) }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue