From ec5a0aa15f17eab5f4029b1c9e3169760a50c25f Mon Sep 17 00:00:00 2001 From: Lukas Martinelli Date: Thu, 1 Dec 2016 10:47:50 +0000 Subject: [PATCH 1/3] Map sea and ocean from OSM --- layers/water_name/mapping.yaml | 25 +++++++++++++++++++++++++ layers/water_name/water_name.yaml | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 layers/water_name/mapping.yaml diff --git a/layers/water_name/mapping.yaml b/layers/water_name/mapping.yaml new file mode 100644 index 0000000..c1d35cc --- /dev/null +++ b/layers/water_name/mapping.yaml @@ -0,0 +1,25 @@ +tables: + # etldoc: imposm3 -> osm_marine_point + marine_point: + type: point + fields: + - name: osm_id + type: id + - name: geometry + type: geometry + - name: name + key: name + type: string + - name: name_en + key: name:en + type: string + - name: place + key: place + type: string + filters: + exclude_tags: + - [ "name", "__nil__" ] + mapping: + place: + - ocean + - sea diff --git a/layers/water_name/water_name.yaml b/layers/water_name/water_name.yaml index e8dfab8..c2a789c 100644 --- a/layers/water_name/water_name.yaml +++ b/layers/water_name/water_name.yaml @@ -22,3 +22,5 @@ schema: datasources: - type: imposm3 mapping_file: ../water/mapping.yaml + - type: imposm3 + mapping_file: ./mapping.yaml From b931261e4bc277628d66dfb5592f4b241960f41b Mon Sep 17 00:00:00 2001 From: Lukas Martinelli Date: Thu, 1 Dec 2016 13:21:25 +0000 Subject: [PATCH 2/3] Correct filtering for us roads. Fixes #81 --- layers/transportation/ne_global_roads.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/layers/transportation/ne_global_roads.sql b/layers/transportation/ne_global_roads.sql index 71fdfc8..49bdcf5 100644 --- a/layers/transportation/ne_global_roads.sql +++ b/layers/transportation/ne_global_roads.sql @@ -21,10 +21,10 @@ CREATE TABLE IF NOT EXISTS ne_10m_global_roads AS ( AND type IN ('Major Highway', 'Secondary Highway', 'Road') UNION ALL - -- etldoc: ne_10m_roads_north_america -> ne_10m_global_roads + -- etldoc: ne_10m_roads_north_america -> ne_10m_global_roads SELECT geom AS geometry, scalerank, ne_highway(type) AS highway FROM ne_10m_roads_north_america - WHERE type IN ('Major Highway', 'Secondary Highway', 'Road') + WHERE class IN ('State', 'Federal', 'Interstate') ); CREATE INDEX IF NOT EXISTS ne_10m_global_roads_geometry_idx ON ne_10m_global_roads USING gist(geometry); From 79e6f57ad7c0d657fdbdf653cd63dab8db14c605 Mon Sep 17 00:00:00 2001 From: Lukas Martinelli Date: Thu, 1 Dec 2016 14:23:14 +0000 Subject: [PATCH 3/3] Use only ne_10m_roads from Natural Earth #81 --- layers/transportation/class.sql | 10 ++++++++ layers/transportation/layer.sql | 12 +++++---- layers/transportation/ne_global_roads.sql | 31 ----------------------- layers/transportation/transportation.yaml | 1 - 4 files changed, 17 insertions(+), 37 deletions(-) delete mode 100644 layers/transportation/ne_global_roads.sql diff --git a/layers/transportation/class.sql b/layers/transportation/class.sql index ff83b9b..20078e8 100644 --- a/layers/transportation/class.sql +++ b/layers/transportation/class.sql @@ -41,3 +41,13 @@ CREATE OR REPLACE FUNCTION service_value(service TEXT) RETURNS TEXT AS $$ ELSE NULL END; $$ LANGUAGE SQL IMMUTABLE STRICT; + +-- Map Natural Earth types to OSM highway +CREATE OR REPLACE FUNCTION ne_highway(type VARCHAR) RETURNS VARCHAR AS $$ + SELECT CASE type + WHEN 'Major Highway' THEN 'motorway' + WHEN 'Secondary Highway' THEN 'trunk' + WHEN 'Road' THEN 'primary' + ELSE type + END; +$$ LANGUAGE SQL IMMUTABLE; diff --git a/layers/transportation/layer.sql b/layers/transportation/layer.sql index 347e564..a0d0356 100644 --- a/layers/transportation/layer.sql +++ b/layers/transportation/layer.sql @@ -20,16 +20,18 @@ RETURNS TABLE(osm_id bigint, geometry geometry, class text, subclass text, ramp brunnel(is_bridge, is_tunnel, is_ford) AS brunnel, NULLIF(service, '') AS service FROM ( - -- etldoc: ne_10m_global_roads -> layer_transportation:z4z6 + -- etldoc: ne_10m_roads -> layer_transportation:z4z6 SELECT - NULL::bigint AS osm_id, geometry, - highway, NULL AS railway, NULL AS service, + NULL::bigint AS osm_id, geom AS geometry, + ne_highway(type) AS highway, NULL AS railway, NULL AS service, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_ford, NULL::boolean AS is_ramp, NULL::boolean AS is_oneway, 0 AS z_order - FROM ne_10m_global_roads - WHERE zoom_level BETWEEN 4 AND 6 AND scalerank <= 1 + zoom_level + FROM ne_10m_roads + WHERE featurecla = 'Road' + AND type IN ('Major Highway', 'Secondary Highway', 'Road') + AND zoom_level BETWEEN 4 AND 6 AND scalerank <= 1 + zoom_level UNION ALL -- etldoc: osm_highway_linestring_gen4 -> layer_transportation:z7z8 diff --git a/layers/transportation/ne_global_roads.sql b/layers/transportation/ne_global_roads.sql deleted file mode 100644 index 49bdcf5..0000000 --- a/layers/transportation/ne_global_roads.sql +++ /dev/null @@ -1,31 +0,0 @@ - - -CREATE OR REPLACE FUNCTION ne_highway(type VARCHAR) RETURNS VARCHAR AS $$ - SELECT CASE type - WHEN 'Major Highway' THEN 'motorway' - WHEN 'Secondary Highway' THEN 'trunk' - WHEN 'Road' THEN 'primary' - ELSE type - END; -$$ LANGUAGE SQL IMMUTABLE; - - --- etldoc: ne_global_roads_sql -> ne_10m_global_roads ; -CREATE TABLE IF NOT EXISTS ne_10m_global_roads AS ( - - -- etldoc: ne_10m_roads -> ne_10m_global_roads - SELECT geom AS geometry, scalerank, ne_highway(type) AS highway - FROM ne_10m_roads - WHERE continent <> 'North America' - AND featurecla = 'Road' - AND type IN ('Major Highway', 'Secondary Highway', 'Road') - UNION ALL - - -- etldoc: ne_10m_roads_north_america -> ne_10m_global_roads - SELECT geom AS geometry, scalerank, ne_highway(type) AS highway - FROM ne_10m_roads_north_america - WHERE class IN ('State', 'Federal', 'Interstate') -); - -CREATE INDEX IF NOT EXISTS ne_10m_global_roads_geometry_idx ON ne_10m_global_roads USING gist(geometry); -CREATE INDEX IF NOT EXISTS ne_10m_global_roads_scalerank_idx ON ne_10m_global_roads(scalerank); diff --git a/layers/transportation/transportation.yaml b/layers/transportation/transportation.yaml index c6a47dc..3788f8c 100644 --- a/layers/transportation/transportation.yaml +++ b/layers/transportation/transportation.yaml @@ -102,7 +102,6 @@ layer: query: (SELECT geometry, class, subclass, oneway, ramp, brunnel, service FROM layer_transportation(!bbox!, z(!scale_denominator!))) AS t schema: - ./class.sql - - ./ne_global_roads.sql - ./layer.sql datasources: - type: imposm3