Skip to content

Instantly share code, notes, and snippets.

@davidstrategicaci
Last active October 19, 2018 13:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidstrategicaci/6c1409d0904d79e426469a8cb8f3ca15 to your computer and use it in GitHub Desktop.
Save davidstrategicaci/6c1409d0904d79e426469a8cb8f3ca15 to your computer and use it in GitHub Desktop.
Split up OSM ways in PostgreSQL
--PostgreSQL
CREATE TABLE osm_network_graph AS
SELECT ROW_NUMBER() OVER (ORDER BY lt.way_id) AS split_way_id,
lt.way_id AS old_way_id,
lt.left_node AS start_node,
rt.right_node AS end_node,
rt.right_sequence AS sequence_id
FROM
(SELECT way_id,
node_id AS left_node,
sequence_id AS left_sequence
FROM way_nodes) AS lt
JOIN
(SELECT way_id,
node_id AS right_node,
sequence_id - 1 AS
right_sequence
FROM way_nodes WHERE sequence_id != 0) AS rt
ON lt.left_sequence = rt.right_sequence
WHERE lt.way_id = rt.way_id;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment