2017-03-01 13:54:33 +00:00
|
|
|
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_network CASCADE;
|
|
|
|
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring CASCADE;
|
|
|
|
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring_gen1 CASCADE;
|
|
|
|
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring_gen2 CASCADE;
|
|
|
|
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring_gen3 CASCADE;
|
2017-03-15 10:08:26 +00:00
|
|
|
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring_gen4 CASCADE;
|
2017-03-01 13:54:33 +00:00
|
|
|
|
2017-03-03 08:15:58 +00:00
|
|
|
DO $$
|
|
|
|
BEGIN
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'route_network_type') THEN
|
|
|
|
CREATE TYPE route_network_type AS ENUM (
|
2017-03-03 13:05:39 +00:00
|
|
|
'us-interstate', 'us-highway', 'us-state',
|
2017-03-14 12:43:14 +00:00
|
|
|
'ca-transcanada',
|
|
|
|
'gb-motorway', 'gb-trunk'
|
2017-03-03 08:15:58 +00:00
|
|
|
);
|
|
|
|
END IF;
|
|
|
|
END
|
|
|
|
$$
|
|
|
|
;
|
|
|
|
|
2017-03-01 09:50:07 +00:00
|
|
|
DO $$
|
|
|
|
BEGIN
|
|
|
|
BEGIN
|
2017-03-03 08:15:58 +00:00
|
|
|
ALTER TABLE osm_route_member ADD COLUMN network_type route_network_type;
|
2017-03-01 09:50:07 +00:00
|
|
|
EXCEPTION
|
2017-03-01 13:54:33 +00:00
|
|
|
WHEN duplicate_column THEN RAISE NOTICE 'column network_type already exists in network_type.';
|
2017-03-01 09:50:07 +00:00
|
|
|
END;
|
|
|
|
END;
|
|
|
|
$$
|
|
|
|
;
|
|
|
|
|
2017-03-14 12:43:14 +00:00
|
|
|
-- create GBR relations (so we can use it in the same way as other relations)
|
|
|
|
DO $$
|
|
|
|
DECLARE gbr_geom geometry;
|
|
|
|
BEGIN
|
|
|
|
select st_buffer(geometry, 10000) into gbr_geom from ne_10m_admin_0_countries where iso_a2 = 'GB';
|
|
|
|
delete from osm_route_member where network IN('omt-gb-motorway', 'omt-gb-trunk');
|
|
|
|
|
|
|
|
insert into osm_route_member (member, ref, network)
|
|
|
|
(
|
|
|
|
SELECT hw.osm_id, substring(hw.ref from E'^[AM][0-9AM()]+'), 'omt-gb-motorway'
|
|
|
|
from osm_highway_linestring hw
|
|
|
|
where length(hw.ref)>0 and ST_Intersects(hw.geometry, gbr_geom)
|
|
|
|
and hw.highway IN ('motorway')
|
|
|
|
) UNION (
|
|
|
|
SELECT hw.osm_id, substring(hw.ref from E'^[AM][0-9AM()]+'), 'omt-gb-trunk'
|
|
|
|
from osm_highway_linestring hw
|
|
|
|
where length(hw.ref)>0 and ST_Intersects(hw.geometry, gbr_geom)
|
|
|
|
and hw.highway IN ('trunk')
|
|
|
|
)
|
|
|
|
;
|
|
|
|
END $$;
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-01 09:50:07 +00:00
|
|
|
-- see http://wiki.openstreetmap.org/wiki/Relation:route#Road_routes
|
|
|
|
UPDATE osm_route_member
|
|
|
|
SET network_type =
|
|
|
|
CASE
|
2017-03-01 13:54:33 +00:00
|
|
|
WHEN network = 'US:I' THEN 'us-interstate'::route_network_type
|
|
|
|
WHEN network = 'US:US' THEN 'us-highway'::route_network_type
|
|
|
|
WHEN network LIKE 'US:__' THEN 'us-state'::route_network_type
|
2017-03-03 13:05:39 +00:00
|
|
|
-- https://en.wikipedia.org/wiki/Trans-Canada_Highway
|
|
|
|
-- TODO: improve hierarchical queries using
|
|
|
|
-- http://www.openstreetmap.org/relation/1307243
|
|
|
|
-- however the relation does not cover the whole Trans-Canada_Highway
|
|
|
|
WHEN
|
|
|
|
(network = 'CA:transcanada') OR
|
|
|
|
(network = 'CA:BC:primary' AND ref IN ('16')) OR
|
|
|
|
(name = 'Yellowhead Highway (AB)' AND ref IN ('16')) OR
|
|
|
|
(network = 'CA:SK' AND ref IN ('16')) OR
|
|
|
|
(network = 'CA:ON:primary' AND ref IN ('17', '417')) OR
|
|
|
|
(name = 'Route Transcanadienne (QC)') OR
|
|
|
|
(network = 'CA:NB' AND ref IN ('2', '16')) OR
|
|
|
|
(network = 'CA:PEI' AND ref IN ('1')) OR
|
|
|
|
(network = 'CA:NS' AND ref IN ('104', '105')) OR
|
|
|
|
(network = 'CA:NL:R' AND ref IN ('1')) OR
|
|
|
|
(name = ' Trans-Canada Highway (Super)')
|
|
|
|
THEN 'ca-transcanada'::route_network_type
|
2017-03-14 12:43:14 +00:00
|
|
|
WHEN network = 'omt-gb-motorway' THEN 'gb-motorway'::route_network_type
|
|
|
|
WHEN network = 'omt-gb-trunk' THEN 'gb-trunk'::route_network_type
|
2017-03-01 12:08:24 +00:00
|
|
|
ELSE NULL
|
2017-03-01 09:50:07 +00:00
|
|
|
END
|
|
|
|
;
|