zstadler 2019-04-07 21:05:00 +03:00
rodzic 0946790935
commit 2357bde1b9
3 zmienionych plików z 62 dodań i 6 usunięć

Wyświetl plik

@ -8,7 +8,7 @@ $$ LANGUAGE SQL IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION layer_transportation(bbox geometry, zoom_level int) CREATE OR REPLACE FUNCTION layer_transportation(bbox geometry, zoom_level int)
RETURNS TABLE(osm_id bigint, geometry geometry, class text, subclass text, RETURNS TABLE(osm_id bigint, geometry geometry, class text, subclass text,
ramp int, oneway int, brunnel TEXT, service TEXT, layer INT, level INT, ramp int, oneway int, brunnel TEXT, service TEXT, layer INT, level INT,
indoor INT) AS $$ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
SELECT SELECT
osm_id, geometry, osm_id, geometry,
CASE CASE
@ -33,7 +33,11 @@ indoor INT) AS $$
NULLIF(service, '') AS service, NULLIF(service, '') AS service,
NULLIF(layer, 0) AS layer, NULLIF(layer, 0) AS layer,
"level", "level",
CASE WHEN indoor=TRUE THEN 1 ELSE NULL END as indoor CASE WHEN indoor=TRUE THEN 1 ELSE NULL END as indoor,
NULLIF(bicycle, '') AS bicycle,
NULLIF(foot, '') AS foot,
NULLIF(horse, '') AS horse,
NULLIF(mtb_scale, '') AS mtb_scale
FROM ( FROM (
-- etldoc: osm_transportation_merge_linestring_gen7 -> layer_transportation:z4 -- etldoc: osm_transportation_merge_linestring_gen7 -> layer_transportation:z4
SELECT SELECT
@ -44,6 +48,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor, NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_transportation_merge_linestring_gen7 FROM osm_transportation_merge_linestring_gen7
WHERE zoom_level = 4 WHERE zoom_level = 4
@ -58,6 +63,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor, NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_transportation_merge_linestring_gen6 FROM osm_transportation_merge_linestring_gen6
WHERE zoom_level = 5 WHERE zoom_level = 5
@ -72,6 +78,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor, NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_transportation_merge_linestring_gen5 FROM osm_transportation_merge_linestring_gen5
WHERE zoom_level = 6 WHERE zoom_level = 6
@ -86,6 +93,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor, NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_transportation_merge_linestring_gen4 FROM osm_transportation_merge_linestring_gen4
WHERE zoom_level = 7 WHERE zoom_level = 7
@ -100,6 +108,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor, NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_transportation_merge_linestring_gen3 FROM osm_transportation_merge_linestring_gen3
WHERE zoom_level = 8 WHERE zoom_level = 8
@ -115,6 +124,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
bicycle, foot, horse, mtb_scale,
z_order z_order
FROM osm_highway_linestring_gen2 FROM osm_highway_linestring_gen2
WHERE zoom_level BETWEEN 9 AND 10 WHERE zoom_level BETWEEN 9 AND 10
@ -130,6 +140,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
bicycle, foot, horse, mtb_scale,
z_order z_order
FROM osm_highway_linestring_gen1 FROM osm_highway_linestring_gen1
WHERE zoom_level = 11 WHERE zoom_level = 11
@ -151,6 +162,7 @@ indoor INT) AS $$
CASE WHEN highway IN ('footway', 'steps') THEN indoor CASE WHEN highway IN ('footway', 'steps') THEN indoor
ELSE NULL::boolean ELSE NULL::boolean
END AS indoor, END AS indoor,
bicycle, foot, horse, mtb_scale,
z_order z_order
FROM osm_highway_linestring FROM osm_highway_linestring
WHERE NOT is_area AND ( WHERE NOT is_area AND (
@ -182,6 +194,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor, NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_railway_linestring_gen5 FROM osm_railway_linestring_gen5
WHERE zoom_level = 8 WHERE zoom_level = 8
@ -197,6 +210,7 @@ indoor INT) AS $$
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made, NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_railway_linestring_gen4 FROM osm_railway_linestring_gen4
WHERE zoom_level = 9 WHERE zoom_level = 9
@ -210,6 +224,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_railway_linestring_gen3 FROM osm_railway_linestring_gen3
WHERE zoom_level = 10 WHERE zoom_level = 10
@ -223,6 +238,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_railway_linestring_gen2 FROM osm_railway_linestring_gen2
WHERE zoom_level = 11 WHERE zoom_level = 11
@ -236,6 +252,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_railway_linestring_gen1 FROM osm_railway_linestring_gen1
WHERE zoom_level = 12 WHERE zoom_level = 12
@ -250,6 +267,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_railway_linestring FROM osm_railway_linestring
WHERE zoom_level = 13 WHERE zoom_level = 13
@ -264,6 +282,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_aerialway_linestring_gen1 FROM osm_aerialway_linestring_gen1
WHERE zoom_level = 12 WHERE zoom_level = 12
@ -277,6 +296,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_aerialway_linestring FROM osm_aerialway_linestring
WHERE zoom_level >= 13 WHERE zoom_level >= 13
@ -289,6 +309,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_shipway_linestring_gen2 FROM osm_shipway_linestring_gen2
WHERE zoom_level = 11 WHERE zoom_level = 11
@ -301,6 +322,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_shipway_linestring_gen1 FROM osm_shipway_linestring_gen1
WHERE zoom_level = 12 WHERE zoom_level = 12
@ -314,6 +336,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_shipway_linestring FROM osm_shipway_linestring
WHERE zoom_level >= 13 WHERE zoom_level >= 13
@ -334,6 +357,7 @@ indoor INT) AS $$
END AS is_bridge, FALSE AS is_tunnel, FALSE AS is_ford, END AS is_bridge, FALSE AS is_tunnel, FALSE AS is_ford,
FALSE AS is_ramp, FALSE::int AS is_oneway, man_made, FALSE AS is_ramp, FALSE::int AS is_oneway, man_made,
layer, NULL::int AS level, NULL::boolean AS indoor, layer, NULL::int AS level, NULL::boolean AS indoor,
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order z_order
FROM osm_highway_polygon FROM osm_highway_polygon
-- We do not want underground pedestrian areas for now -- We do not want underground pedestrian areas for now

Wyświetl plik

@ -133,6 +133,22 @@ man_made_field: &man_made
z_order_field: &z_order z_order_field: &z_order
name: z_order name: z_order
type: wayzorder type: wayzorder
bicycle_field: &bicycle
key: bicycle
name: bicycle
type: string
foot_field: &foot
key: foot
name: foot
type: string
horse_field: &horse
key: horse
name: horse
type: string
mtb_scale_field: &mtb_scale
key: mtb:scale
name: mtb_scale
type: string
tables: tables:
# etldoc: imposm3 -> osm_highway_linestring # etldoc: imposm3 -> osm_highway_linestring
@ -168,6 +184,10 @@ tables:
- *usage - *usage
- *public_transport - *public_transport
- *man_made - *man_made
- *bicycle
- *foot
- *horse
- *mtb_scale
mapping: mapping:
highway: highway:
- motorway - motorway

Wyświetl plik

@ -94,21 +94,33 @@ layer:
- parking_aisle - parking_aisle
layer: layer:
description: | description: |
Original value of [`layer`](http://wiki.openstreetmap.org/wiki/Key:layer) tag. Original value of the [`layer`](http://wiki.openstreetmap.org/wiki/Key:layer) tag.
level: level:
description: | description: |
Experimental feature! Filled only for steps and footways. Original Experimental feature! Filled only for steps and footways. Original
value of [`level`](http://wiki.openstreetmap.org/wiki/Key:level) tag. value of the [`level`](http://wiki.openstreetmap.org/wiki/Key:level) tag.
indoor: indoor:
description: | description: |
Experimental feature! Filled only for steps and footways. Original Experimental feature! Filled only for steps and footways. Original
value of [`indoor`](http://wiki.openstreetmap.org/wiki/Key:indoor) tag. value of the [`indoor`](http://wiki.openstreetmap.org/wiki/Key:indoor) tag.
values: values:
- 1 - 1
bicycle:
description: |
Original value of the [`bicycle`](http://wiki.openstreetmap.org/wiki/Key:bicycle) tag (highways only).
foot:
description: |
Original value of the [`foot`](http://wiki.openstreetmap.org/wiki/Key:foot) tag (highways only).
hourse:
description: |
Original value of the [`hourse`](http://wiki.openstreetmap.org/wiki/Key:hourse) tag (highways only).
mtb_scale:
description: |
Original value of the [`mtb:scale`](http://wiki.openstreetmap.org/wiki/Key:mtb:scale) tag (highways only).
datasource: datasource:
geometry_field: geometry geometry_field: geometry
srid: 900913 srid: 900913
query: (SELECT geometry, class, subclass, oneway, ramp, brunnel, service, layer, level, indoor FROM layer_transportation(!bbox!, z(!scale_denominator!))) AS t query: (SELECT geometry, class, subclass, oneway, ramp, brunnel, service, layer, level, indoor, bicycle, foot, horse, mtb_scale FROM layer_transportation(!bbox!, z(!scale_denominator!))) AS t
schema: schema:
- ./class.sql - ./class.sql
- ./update_transportation_merge.sql - ./update_transportation_merge.sql