Import regions from administrative boundaries
This commit is contained in:
parent
ec53591ce0
commit
7e51976c06
|
@ -50,6 +50,9 @@ local MOTORWAY_TYPES = {
|
||||||
"motorway_link",
|
"motorway_link",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local ADMIN_LEVEL_MIN = 2
|
||||||
|
local ADMIN_LEVEL_MAX = 8
|
||||||
|
|
||||||
local ONEWAY_YES = {"yes", "true", "1"}
|
local ONEWAY_YES = {"yes", "true", "1"}
|
||||||
local ONEWAY_REVERSE = {"reverse", "-1"}
|
local ONEWAY_REVERSE = {"reverse", "-1"}
|
||||||
|
|
||||||
|
@ -63,6 +66,13 @@ local roads = osm2pgsql.define_way_table('road', {
|
||||||
|
|
||||||
local minspeed_rural = 60
|
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)
|
function osm2pgsql.process_way(object)
|
||||||
if object.tags.highway and contains(HIGHWAY_TYPES, object.tags.highway) then
|
if object.tags.highway and contains(HIGHWAY_TYPES, object.tags.highway) then
|
||||||
local tags = object.tags
|
local tags = object.tags
|
||||||
|
@ -131,3 +141,21 @@ function osm2pgsql.process_way(object)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
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