Add platforms to transportation as paths

pull/353/head
jirik 2017-11-08 16:54:07 +01:00 zatwierdzone przez Jiri Kozel
rodzic 68785c1a21
commit 1cdf726384
5 zmienionych plików z 39 dodań i 28 usunięć

Wyświetl plik

@ -9,7 +9,7 @@ $$ LANGUAGE SQL IMMUTABLE STRICT;
-- The classes for highways are derived from the classes used in ClearTables
-- https://github.com/ClearTables/ClearTables/blob/master/transportation.lua
CREATE OR REPLACE FUNCTION highway_class(highway TEXT) RETURNS TEXT AS $$
CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT) RETURNS TEXT AS $$
SELECT CASE
WHEN highway IN ('motorway', 'motorway_link') THEN 'motorway'
WHEN highway IN ('trunk', 'trunk_link') THEN 'trunk'
@ -18,7 +18,7 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT) RETURNS TEXT AS $$
WHEN highway IN ('tertiary', 'tertiary_link') THEN 'tertiary'
WHEN highway IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor'
WHEN highway IN ('service', 'track') THEN highway
WHEN highway IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') THEN 'path'
WHEN highway IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR public_transport IN ('platform') THEN 'path'
WHEN highway = 'raceway' THEN 'raceway'
ELSE NULL
END;

Wyświetl plik

@ -11,7 +11,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
CASE
WHEN highway IS NOT NULL THEN highway_class(highway)
WHEN highway IS NOT NULL OR public_transport IS NOT NULL THEN highway_class(highway, public_transport)
WHEN railway IS NOT NULL THEN railway_class(railway)
WHEN aerialway IS NOT NULL THEN aerialway
WHEN shipway IS NOT NULL THEN shipway
@ -31,7 +31,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
NULL AS service,
NULL AS public_transport, 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,
@ -44,7 +44,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
NULL AS service,
NULL AS public_transport, 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,
@ -57,7 +57,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
NULL AS service,
NULL AS public_transport, 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,
@ -70,7 +70,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
NULL AS service,
NULL AS public_transport, 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,
@ -83,7 +83,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
NULL AS service,
NULL AS public_transport, 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,
@ -97,7 +97,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
NULL AS service,
NULL AS public_transport, 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,
@ -111,7 +111,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
NULL AS service,
NULL AS public_transport, 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,
@ -127,15 +127,16 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
service_value(service) AS service,
public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_highway_linestring
WHERE NOT is_area AND (
zoom_level = 12 AND (
highway_class(highway) NOT IN ('track', 'path', 'minor')
highway_class(highway, public_transport) NOT IN ('track', 'path', 'minor')
OR highway IN ('unclassified', 'residential')
)
OR zoom_level = 13 AND highway_class(highway) NOT IN ('track', 'path')
OR zoom_level = 13
AND highway_class(highway, public_transport) NOT IN ('track', 'path')
OR zoom_level >= 14
)
UNION ALL
@ -144,7 +145,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
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_ford,
NULL::boolean AS is_ramp, NULL::boolean AS is_oneway,
@ -158,7 +159,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
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_ford,
NULL::boolean AS is_ramp, NULL::boolean AS is_oneway,
@ -172,7 +173,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_railway_linestring_gen3
WHERE zoom_level = 10
@ -183,7 +184,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_railway_linestring_gen2
WHERE zoom_level = 11
@ -194,7 +195,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_railway_linestring_gen1
WHERE zoom_level = 12
@ -206,7 +207,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_railway_linestring
WHERE zoom_level = 13
@ -218,7 +219,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, NULL as railway, aerialway, NULL AS shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_aerialway_linestring_gen1
WHERE zoom_level = 12
@ -229,7 +230,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, NULL as railway, aerialway, NULL AS shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_aerialway_linestring
WHERE zoom_level >= 13
@ -239,7 +240,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_shipway_linestring_gen2
WHERE zoom_level = 11
@ -249,7 +250,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_shipway_linestring_gen1
WHERE zoom_level = 12
@ -260,7 +261,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway,
service_value(service) AS service,
NULL AS public_transport, service_value(service) AS service,
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, z_order
FROM osm_shipway_linestring
WHERE zoom_level >= 13
@ -275,7 +276,7 @@ ramp int, oneway int, brunnel TEXT, service TEXT) AS $$
SELECT
osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway,
NULL AS service,
public_transport, NULL AS service,
FALSE AS is_bridge, FALSE AS is_tunnel, FALSE AS is_ford,
FALSE AS is_ramp, FALSE AS is_oneway, z_order
FROM osm_highway_polygon

Wyświetl plik

@ -100,6 +100,10 @@ usage_field: &usage
key: usage
name: usage
type: string
public_transport_field: &public_transport
key: public_transport
name: public_transport
type: string
ref_field: &ref
key: ref
name: ref
@ -144,6 +148,7 @@ tables:
- *area
- *service
- *usage
- *public_transport
mapping:
highway:
- motorway
@ -170,6 +175,8 @@ tables:
- corridor
- pedestrian
- steps
public_transport:
- platform
# etldoc: imposm3 -> osm_railway_linestring
railway_linestring:
@ -286,9 +293,12 @@ tables:
- name: is_area
key: area
type: bool
- *public_transport
mapping:
highway:
- pedestrian
public_transport:
- platform
# TODO: Future table for joining networks
# etldoc: imposm3 -> osm_route_member

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 62 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 89 KiB

Wyświetl plik

@ -17,7 +17,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
when length(coalesce(ref, ''))>0
then 'road'
end as network,
highway_class(highway) AS class
highway_class(highway, '') AS class
FROM (
-- etldoc: osm_transportation_name_linestring_gen4 -> layer_transportation_name:z6
@ -46,7 +46,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
SELECT * FROM osm_transportation_name_linestring
WHERE zoom_level = 12
AND LineLabel(zoom_level, COALESCE(NULLIF(name, ''), ref), geometry)
AND highway_class(highway) NOT IN ('minor', 'track', 'path')
AND highway_class(highway, '') NOT IN ('minor', 'track', 'path')
AND NOT highway_is_link(highway)
UNION ALL
@ -54,7 +54,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
SELECT * FROM osm_transportation_name_linestring
WHERE zoom_level = 13
AND LineLabel(zoom_level, COALESCE(NULLIF(name, ''), ref), geometry)
AND highway_class(highway) NOT IN ('track', 'path')
AND highway_class(highway, '') NOT IN ('track', 'path')
UNION ALL
-- etldoc: osm_transportation_name_linestring -> layer_transportation_name:z14_