Add polygon piers

This commit is contained in:
jirik 2018-11-07 14:57:01 +01:00 committed by Jiri Kozel
parent bae5f21bb4
commit 4304c756ad
3 changed files with 32 additions and 27 deletions

View File

@ -12,10 +12,11 @@ indoor INT) AS $$
SELECT SELECT
osm_id, geometry, osm_id, geometry,
CASE CASE
WHEN highway IS NOT NULL OR public_transport IS NOT NULL THEN highway_class(highway, public_transport) WHEN NULLIF(highway, '') IS NOT NULL OR NULLIF(public_transport, '') IS NOT NULL THEN highway_class(highway, public_transport)
WHEN railway IS NOT NULL THEN railway_class(railway) WHEN NULLIF(railway, '') IS NOT NULL THEN railway_class(railway)
WHEN aerialway IS NOT NULL THEN aerialway WHEN NULLIF(aerialway, '') IS NOT NULL THEN aerialway
WHEN shipway IS NOT NULL THEN shipway WHEN NULLIF(shipway, '') IS NOT NULL THEN shipway
WHEN NULLIF(man_made, '') IS NOT NULL THEN man_made
END AS class, END AS class,
CASE CASE
WHEN railway IS NOT NULL THEN railway WHEN railway IS NOT NULL THEN railway
@ -41,7 +42,7 @@ indoor INT) AS $$
NULL AS public_transport, NULL AS service, NULL AS public_transport, NULL AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_transportation_merge_linestring_gen7 FROM osm_transportation_merge_linestring_gen7
@ -55,7 +56,7 @@ indoor INT) AS $$
NULL AS public_transport, NULL AS service, NULL AS public_transport, NULL AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_transportation_merge_linestring_gen6 FROM osm_transportation_merge_linestring_gen6
@ -69,7 +70,7 @@ indoor INT) AS $$
NULL AS public_transport, NULL AS service, NULL AS public_transport, NULL AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_transportation_merge_linestring_gen5 FROM osm_transportation_merge_linestring_gen5
@ -83,7 +84,7 @@ indoor INT) AS $$
NULL AS public_transport, NULL AS service, NULL AS public_transport, NULL AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_transportation_merge_linestring_gen4 FROM osm_transportation_merge_linestring_gen4
@ -97,7 +98,7 @@ indoor INT) AS $$
NULL AS public_transport, NULL AS service, NULL AS public_transport, NULL AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_transportation_merge_linestring_gen3 FROM osm_transportation_merge_linestring_gen3
@ -112,7 +113,7 @@ indoor INT) AS $$
NULL AS public_transport, NULL AS service, NULL AS public_transport, NULL AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_highway_linestring_gen2 FROM osm_highway_linestring_gen2
@ -127,7 +128,7 @@ indoor INT) AS $$
NULL AS public_transport, NULL AS service, NULL AS public_transport, NULL AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_highway_linestring_gen1 FROM osm_highway_linestring_gen1
@ -142,7 +143,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
public_transport, service_value(service) AS service, public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
layer, layer,
CASE WHEN highway IN ('footway', 'steps') THEN "level" CASE WHEN highway IN ('footway', 'steps') THEN "level"
ELSE NULL::int ELSE NULL::int
@ -170,7 +171,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_railway_linestring_gen5 FROM osm_railway_linestring_gen5
@ -185,7 +186,7 @@ indoor INT) AS $$
NULL AS public_transport, service_value(service) AS service, NULL AS public_transport, service_value(service) AS service,
NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel,
NULL::boolean AS is_ford, NULL::boolean AS is_ford,
NULL::boolean AS is_ramp, NULL::int AS is_oneway, 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,
z_order z_order
FROM osm_railway_linestring_gen4 FROM osm_railway_linestring_gen4
@ -198,7 +199,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
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, 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,
z_order z_order
FROM osm_railway_linestring_gen3 FROM osm_railway_linestring_gen3
@ -211,7 +212,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
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, 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,
z_order z_order
FROM osm_railway_linestring_gen2 FROM osm_railway_linestring_gen2
@ -224,7 +225,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
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, 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,
z_order z_order
FROM osm_railway_linestring_gen1 FROM osm_railway_linestring_gen1
@ -238,7 +239,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
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, 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,
z_order z_order
FROM osm_railway_linestring FROM osm_railway_linestring
@ -252,7 +253,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL as railway, aerialway, NULL AS shipway, NULL AS highway, NULL as railway, aerialway, NULL AS shipway,
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, 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,
z_order z_order
FROM osm_aerialway_linestring_gen1 FROM osm_aerialway_linestring_gen1
@ -265,7 +266,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL as railway, aerialway, NULL AS shipway, NULL AS highway, NULL as railway, aerialway, NULL AS shipway,
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, 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,
z_order z_order
FROM osm_aerialway_linestring FROM osm_aerialway_linestring
@ -277,7 +278,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
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, 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,
z_order z_order
FROM osm_shipway_linestring_gen2 FROM osm_shipway_linestring_gen2
@ -289,7 +290,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
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, 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,
z_order z_order
FROM osm_shipway_linestring_gen1 FROM osm_shipway_linestring_gen1
@ -302,7 +303,7 @@ indoor INT) AS $$
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
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, 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,
z_order z_order
FROM osm_shipway_linestring FROM osm_shipway_linestring
@ -322,14 +323,14 @@ indoor INT) AS $$
CASE WHEN man_made IN ('bridge') THEN TRUE CASE WHEN man_made IN ('bridge') THEN TRUE
ELSE FALSE ELSE FALSE
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, 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,
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
WHERE zoom_level >= 13 WHERE zoom_level >= 13
AND ( AND (
man_made IN ('bridge') man_made IN ('bridge', 'pier')
OR (is_area AND COALESCE(layer, 0) >= 0) OR (is_area AND COALESCE(layer, 0) >= 0)
) )
) AS zoom_levels ) AS zoom_levels

View File

@ -332,6 +332,7 @@ tables:
- platform - platform
man_made: man_made:
- bridge - bridge
- pier
# TODO: Future table for joining networks # TODO: Future table for joining networks
# etldoc: imposm3 -> osm_route_member # etldoc: imposm3 -> osm_route_member

View File

@ -18,9 +18,10 @@ layer:
Class is derived from the value of the Class is derived from the value of the
[`highway`](http://wiki.openstreetmap.org/wiki/Key:highway), [`highway`](http://wiki.openstreetmap.org/wiki/Key:highway),
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway), [`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
[`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway), or [`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway),
[`route`](http://wiki.openstreetmap.org/wiki/Key:route) tag (for [`route`](http://wiki.openstreetmap.org/wiki/Key:route) tag (for
shipping ways). shipping ways), or
[`man_made`](http://wiki.openstreetmap.org/wiki/Key:route).
values: values:
- motorway - motorway
- trunk - trunk
@ -36,6 +37,8 @@ layer:
- transit - transit
- cable_car - cable_car
- ferry - ferry
- bridge
- pier
subclass: subclass:
description: | description: |
Distinguish more specific classes of railway and path: Distinguish more specific classes of railway and path: