[Tile-serving] [osm2pgsql-dev/osm2pgsql] Error in reprocessing of ways in relation, if osmc_symbols-tag of the relation contains the word 'backslash' (Issue #2128)
Mathias
notifications at github.com
Fri Feb 2 18:38:55 UTC 2024
Thanks for your help and explanations!
Here is my adjusted configuration
```
print('osm2pgsql version: ' .. osm2pgsql.version)
-- Variables
local tables = {}
local import_schema = 'osm' -- Defines the import schema
local epsg_code = 32633 -- Defines the projection
local w2r = {}
-- Table defenitions
tables.traffic = osm2pgsql.define_table({
name = 'traffic',
schema = import_schema,
ids = {
type = 'way',
id_column = 'way_id'
},
columns = {{
column = 'fid',
sql_type = 'serial',
create_only = true
}, {
column = 'highway',
type = 'text'
}, {
column = 'name',
type = 'text'
}, {
column = 'osmc_symbols',
type = 'jsonb'
},{
column = 'rel_ids',
sql_type = 'int8[]'
}, {
column = 'geom',
type = 'linestring',
projection = epsg_code
}},
indexes = {{
column = 'geom',
method = 'gist'
}}
})
function osm2pgsql.select_relation_members(relation)
-- Only interested in relations with type=route
if relation.tags.type == 'route' and relation.tags.route == 'hiking' then
return { ways = osm2pgsql.way_member_ids(relation) }
end
end
-- Function which fill the tables
function osm2pgsql.process_node(object)
end
function osm2pgsql.process_way(object)
if object.tags.highway or object.tags.railway then
row = {
name = object.tags.name,
highway = object.tags.highway,
geom = object:as_multilinestring()
}
local d = w2r[object.id]
if d then
local refs = {}
local ids = {}
for rel_id, rel_ref in pairs(d) do
refs[#refs + 1] = rel_ref
ids[#ids + 1] = rel_id
end
table.sort(refs)
table.sort(ids)
row.osmc_symbols = refs
row.rel_ids = '{' .. table.concat(ids, ',') .. '}'
end
tables.traffic:insert(row)
end
end
function osm2pgsql.process_relation(object)
local type = object:grab_tag('type')
if type == 'route' and object.tags.route == 'hiking' then
for _, member in ipairs(object.members) do
if member.type == 'w' then
if not w2r[member.ref] then
w2r[member.ref] = {}
end
w2r[member.ref][object.id] = object.tags['osmc:symbol']
end
end
end
end
```
--
Reply to this email directly or view it on GitHub:
https://github.com/osm2pgsql-dev/osm2pgsql/issues/2128#issuecomment-1924469460
You are receiving this because you are subscribed to this thread.
Message ID: <osm2pgsql-dev/osm2pgsql/issues/2128/1924469460 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/tile-serving/attachments/20240202/74085003/attachment.htm>
More information about the Tile-serving
mailing list