Going straight ahead!
This commit is contained in:
1 parent
89b07a3dc6
commit
a92eee0479
10 files changed
+315
-129
No files matched your search
@@ -0,0 +1,50 @@
|
||||
INSTALL spatial;
|
||||
LOAD spatial;
|
||||
|
||||
CREATE OR REPLACE VIEW osm_quebec AS (
|
||||
SELECT
|
||||
*,
|
||||
'montreal' AS city
|
||||
FROM
|
||||
ST_READOSM (
|
||||
'/nix/store/j56yncmjh7qgwa5k631vl70mdny7c5y0-data-dir/canada/quebec/montreal_quebec.osm.pbf'
|
||||
)
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW roads AS (
|
||||
WITH
|
||||
interresting_ways AS (SELECT * FROM osm_quebec
|
||||
WHERE (
|
||||
tags['highway'][1] = 'residential'
|
||||
OR tags['highway'][1] = 'primary'
|
||||
OR tags['highway'][1] = 'secondary'
|
||||
OR tags['highway'][1] = 'tertiary'
|
||||
)
|
||||
AND city = 'montreal'),
|
||||
relations AS (SELECT id,
|
||||
tags,
|
||||
UNNEST(refs) AS refs,
|
||||
UNNEST(RANGE(LEN(refs))) as index
|
||||
FROM interresting_ways),
|
||||
road_points AS (SELECT osm_quebec.id AS id,
|
||||
osm_quebec.lon AS lon,
|
||||
osm_quebec.lat AS lat,
|
||||
relations.tags AS tags,
|
||||
relations.index AS relation_index,
|
||||
relations.id AS relation_id
|
||||
FROM relations
|
||||
JOIN osm_quebec
|
||||
ON osm_quebec.id = relations.refs
|
||||
WHERE
|
||||
osm_quebec.kind = 'node'
|
||||
ORDER BY relation_id, relation_index)
|
||||
SELECT
|
||||
relation_id,
|
||||
LIST([road_points.lat, road_points.lon]) AS points,
|
||||
ANY_VALUE(tags) AS tags
|
||||
FROM road_points
|
||||
GROUP BY relation_id
|
||||
);
|
||||
|
||||
COPY roads TO 'static/data/montreal.csv';
|
||||
COPY roads TO 'static/data/montreal.json';
|
||||
Reference in new issue
Block a user