merge master into add-garages

This commit is contained in:
golubev 2019-11-04 13:12:34 +02:00
commit 05e77f6870
52 changed files with 296 additions and 230 deletions

View File

@ -13,4 +13,4 @@ Your pull request must:
* Be possible to merge automatically. * Be possible to merge automatically.
When you rea making PR that adds new spatial features to OpenMapTiles schema, please make also PR for at least one of our GL styles to show it on the map. Visual check is crucial. When you are making a PR that adds new spatial features to OpenMapTiles schema, please make also PR for at least one of our GL styles to show it on the map. Visual check is crucial.

3
.gitignore vendored
View File

@ -17,5 +17,6 @@ wikidata/*
# generated source files # generated source files
build/* build/*
# any IntelliJ IDEA files # any IDE files
.idea/ .idea/
.vscode/

View File

@ -154,7 +154,8 @@ etl-graph:
# generate etl graph for a certain layer, e.g. etl-graph-building, etl-graph-place # generate etl graph for a certain layer, e.g. etl-graph-building, etl-graph-place
etl-graph-%: layers/% build/devdoc etl-graph-%: layers/% build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/$*/$*.yaml ./build/devdoc docker run --rm -u $$(id -u $${USER}):$$(id -g $${USER}) -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/$*/$*.yaml ./build/devdoc
cp ./build/devdoc/etl_$*.png layers/$*/etl_diagram.png
mappingLayers = $(notdir $(patsubst %/mapping.yaml,%, $(wildcard layers/*/mapping.yaml))) # layers with mapping.yaml mappingLayers = $(notdir $(patsubst %/mapping.yaml,%, $(wildcard layers/*/mapping.yaml))) # layers with mapping.yaml
@ -166,7 +167,8 @@ mapping-graph:
@echo 'Valid layers: $(mappingLayers)' @echo 'Valid layers: $(mappingLayers)'
mapping-graph-%: ./layers/%/mapping.yaml build/devdoc mapping-graph-%: ./layers/%/mapping.yaml build/devdoc
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-mapping-graph layers/$*/$*.yaml ./build/devdoc/mapping-diagram-$* docker run --rm -u $$(id -u $${USER}):$$(id -g $${USER}) -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-mapping-graph layers/$*/$*.yaml ./build/devdoc/mapping-diagram-$*
cp ./build/devdoc/mapping-diagram-$*.png layers/$*/mapping_diagram.png
# generate all etl and mapping graphs # generate all etl and mapping graphs
generate-devdoc: $(addprefix etl-graph-,$(layers)) $(addprefix mapping-graph-,$(mappingLayers)) generate-devdoc: $(addprefix etl-graph-,$(layers)) $(addprefix mapping-graph-,$(mappingLayers))

View File

@ -27,6 +27,7 @@ You can start from several GL styles supporting the OpenMapTiles vector schema.
- [Klokantech 3D](https://github.com/openmaptiles/klokantech-3d-gl-style) - [Klokantech 3D](https://github.com/openmaptiles/klokantech-3d-gl-style)
- [Fiord Color](https://github.com/openmaptiles/fiord-color-gl-style) - [Fiord Color](https://github.com/openmaptiles/fiord-color-gl-style)
- [Toner](https://github.com/openmaptiles/toner-gl-style) - [Toner](https://github.com/openmaptiles/toner-gl-style)
- [OSM Liberty](https://github.com/maputnik/osm-liberty)
We also ported over our favorite old raster styles (TM2). We also ported over our favorite old raster styles (TM2).
@ -105,6 +106,16 @@ docker-compose run import-lakelines
docker-compose run import-osmborder docker-compose run import-osmborder
``` ```
**[Optional]**
Import latest Wikidata. If an OSM feature has [Key:wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata), OpenMapTiles check corresponding item in Wikidata and use its [labels](https://www.wikidata.org/wiki/Help:Label) for languages listed in [openmaptiles.yaml](openmaptiles.yaml). So the generated vector tiles includes multi-languages in name field.
Beware that current [Wikidata dump](https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.gz) is more than 55GB, it takes time to download and import it. If you just want to have a quickstart on OpenMapTiles, just skip this step.
```bash
make download-wikidata
docker-compose run import-wikidata
```
[Download OpenStreetMap data extracts](http://download.geofabrik.de/) and store the PBF file in the `./data` directory. [Download OpenStreetMap data extracts](http://download.geofabrik.de/) and store the PBF file in the `./data` directory.
```bash ```bash

View File

@ -18,7 +18,7 @@ services:
networks: networks:
- postgres_conn - postgres_conn
import-water: import-water:
image: "openmaptiles/import-water:1.1" image: "openmaptiles/import-water:1.2"
env_file: .env env_file: .env
networks: networks:
- postgres_conn - postgres_conn
@ -68,7 +68,7 @@ services:
- ./build:/mapping - ./build:/mapping
- cache:/cache - cache:/cache
import-sql: import-sql:
image: "openmaptiles/import-sql:0.8" image: "openmaptiles/import-sql:1.0"
env_file: .env env_file: .env
networks: networks:
- postgres_conn - postgres_conn

View File

@ -27,6 +27,8 @@ layer:
ele_ft: Elevation (`ele`) in feets. ele_ft: Elevation (`ele`) in feets.
datasource: datasource:
geometry_field: geometry geometry_field: geometry
key_field: osm_id
key_field_as_attribute: no
srid: 900913 srid: 900913
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, iata, icao, ele, ele_ft FROM layer_aerodrome_label (!bbox!, z(!scale_denominator!), !pixel_width!)) AS t query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, iata, icao, ele, ele_ft FROM layer_aerodrome_label (!bbox!, z(!scale_denominator!), !pixel_width!)) AS t
schema: schema:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 208 KiB

View File

@ -21,7 +21,7 @@ CREATE OR REPLACE FUNCTION landcover_class(landuse VARCHAR, "natural" VARCHAR, l
OR leisure IN ('park', 'garden') OR leisure IN ('park', 'garden')
THEN 'grass' THEN 'grass'
WHEN "natural"='wetland' OR wetland IN ('bog', 'swamp', 'wet_meadow', 'marsh', 'reedbed', 'saltern', 'tidalflat', 'saltmarsh', 'mangrove') THEN 'wetland' WHEN "natural"='wetland' OR wetland IN ('bog', 'swamp', 'wet_meadow', 'marsh', 'reedbed', 'saltern', 'tidalflat', 'saltmarsh', 'mangrove') THEN 'wetland'
WHEN "natural"IN ('beach', 'sand') THEN 'sand' WHEN "natural"IN ('beach', 'sand', 'dune') THEN 'sand'
ELSE NULL ELSE NULL
END; END;
$$ LANGUAGE SQL IMMUTABLE; $$ LANGUAGE SQL IMMUTABLE;

View File

@ -29,6 +29,7 @@ layer:
- bare_rock - bare_rock
- beach - beach
- bog - bog
- dune
- farm - farm
- farmland - farmland
- forest - forest

View File

@ -92,6 +92,7 @@ tables:
- scree - scree
- beach - beach
- sand - sand
- dune
leisure: leisure:
- park - park
- garden - garden

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -19,6 +19,8 @@ layer:
rank: Rank of the peak within one tile (starting at 1 that is the most important peak). rank: Rank of the peak within one tile (starting at 1 that is the most important peak).
datasource: datasource:
geometry_field: geometry geometry_field: geometry
key_field: osm_id
key_field_as_attribute: no
srid: 900913 srid: 900913
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, ele, ele_ft, rank FROM layer_mountain_peak(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, ele, ele_ft, rank FROM layer_mountain_peak(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t
schema: schema:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -30,7 +30,7 @@ $$ LANGUAGE SQL IMMUTABLE;
CREATE OR REPLACE FUNCTION poi_class(subclass TEXT, mapping_key TEXT) CREATE OR REPLACE FUNCTION poi_class(subclass TEXT, mapping_key TEXT)
RETURNS TEXT AS $$ RETURNS TEXT AS $$
SELECT CASE SELECT CASE
WHEN subclass IN ('accessories','antiques','beauty','bed','boutique','camera','carpet','charity','chemist','chocolate','coffee','computer','confectionery','convenience','copyshop','cosmetics','garden_centre','doityourself','erotic','electronics','fabric','florist','frozen_food','furniture','video_games','video','general','gift','hardware','hearing_aids','hifi','ice_cream','interior_decoration','jewelry','kiosk','lamps','mall','massage','motorcycle','mobile_phone','newsagent','optician','outdoor','perfumery','perfume','pet','photo','second_hand','shoes','sports','stationery','tailor','tattoo','ticket','tobacco','toys','travel_agency','watches','weapons','wholesale') THEN 'shop' WHEN subclass IN ('accessories','antiques','beauty','bed','boutique','camera','carpet','charity','chemist','coffee','computer','convenience','copyshop','cosmetics','garden_centre','doityourself','erotic','electronics','fabric','florist','frozen_food','furniture','video_games','video','general','gift','hardware','hearing_aids','hifi','ice_cream','interior_decoration','jewelry','kiosk','lamps','mall','massage','motorcycle','mobile_phone','newsagent','optician','outdoor','perfumery','perfume','pet','photo','second_hand','shoes','sports','stationery','tailor','tattoo','ticket','tobacco','toys','travel_agency','watches','weapons','wholesale') THEN 'shop'
WHEN subclass IN ('townhall','public_building','courthouse','community_centre') THEN 'town_hall' WHEN subclass IN ('townhall','public_building','courthouse','community_centre') THEN 'town_hall'
WHEN subclass IN ('golf','golf_course','miniature_golf') THEN 'golf' WHEN subclass IN ('golf','golf_course','miniature_golf') THEN 'golf'
WHEN subclass IN ('fast_food','food_court') THEN 'fast_food' WHEN subclass IN ('fast_food','food_court') THEN 'fast_food'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -314,134 +314,78 @@ def_poi_mapping_tourism: &poi_mapping_tourism
def_poi_mapping_waterway: &poi_mapping_waterway def_poi_mapping_waterway: &poi_mapping_waterway
- dock - dock
def_poi_fields: &poi_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: name_de
key: name:de
type: string
- name: tags
type: hstore_tags
- name: subclass
type: mapping_value
- name: mapping_key
type: mapping_key
- name: station
key: station
type: string
- name: funicular
key: funicular
type: string
- name: information
key: information
type: string
- name: uic_ref
key: uic_ref
type: string
- name: religion
key: religion
type: string
- name: level
key: level
type: integer
- name: indoor
key: indoor
type: bool
- name: layer
key: layer
type: integer
- name: sport
key: sport
type: string
def_poi_mapping: &poi_mapping
aerialway: *poi_mapping_aerialway
amenity: *poi_mapping_amenity
barrier: *poi_mapping_barrier
building: *poi_mapping_building
highway: *poi_mapping_highway
historic: *poi_mapping_historic
landuse: *poi_mapping_landuse
leisure: *poi_mapping_leisure
railway: *poi_mapping_railway
shop: *poi_mapping_shop
sport: *poi_mapping_sport
tourism: *poi_mapping_tourism
waterway: *poi_mapping_waterway
tables: tables:
# etldoc: imposm3 -> osm_poi_point # etldoc: imposm3 -> osm_poi_point
poi_point: poi_point:
type: point type: point
fields: fields: *poi_fields
- name: osm_id mapping: *poi_mapping
type: id
- name: geometry
type: geometry
- name: name
key: name
type: string
- name: name_en
key: name:en
type: string
- name: name_de
key: name:de
type: string
- name: tags
type: hstore_tags
- name: subclass
type: mapping_value
- name: mapping_key
type: mapping_key
- name: station
key: station
type: string
- name: funicular
key: funicular
type: string
- name: information
key: information
type: string
- name: uic_ref
key: uic_ref
type: string
- name: religion
key: religion
type: string
- name: level
key: level
type: integer
- name: indoor
key: indoor
type: bool
- name: layer
key: layer
type: integer
- name: sport
key: sport
type: string
mapping:
aerialway: *poi_mapping_aerialway
amenity: *poi_mapping_amenity
barrier: *poi_mapping_barrier
building: *poi_mapping_building
highway: *poi_mapping_highway
historic: *poi_mapping_historic
landuse: *poi_mapping_landuse
leisure: *poi_mapping_leisure
railway: *poi_mapping_railway
shop: *poi_mapping_shop
sport: *poi_mapping_sport
tourism: *poi_mapping_tourism
waterway: *poi_mapping_waterway
# etldoc: imposm3 -> osm_poi_polygon # etldoc: imposm3 -> osm_poi_polygon
poi_polygon: poi_polygon:
type: polygon type: polygon
fields: fields: *poi_fields
- name: osm_id mapping: *poi_mapping
type: id
- name: geometry
type: geometry
- name: name
key: name
type: string
- name: name_en
key: name:en
type: string
- name: name_de
key: name:de
type: string
- name: tags
type: hstore_tags
- name: subclass
type: mapping_value
- name: mapping_key
type: mapping_key
- name: station
key: station
type: string
- name: funicular
key: funicular
type: string
- name: information
key: information
type: string
- name: uic_ref
key: uic_ref
type: string
- name: religion
key: religion
type: string
- name: level
key: level
type: integer
- name: indoor
key: indoor
type: bool
- name: layer
key: layer
type: integer
- name: sport
key: sport
type: string
mapping:
aerialway: *poi_mapping_aerialway
amenity: *poi_mapping_amenity
barrier: *poi_mapping_barrier
building: *poi_mapping_building
highway: *poi_mapping_highway
historic: *poi_mapping_historic
landuse: *poi_mapping_landuse
leisure: *poi_mapping_leisure
railway: *poi_mapping_railway
shop: *poi_mapping_shop
sport: *poi_mapping_sport
tourism: *poi_mapping_tourism
waterway: *poi_mapping_waterway

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -9,7 +9,7 @@ $$ LANGUAGE SQL IMMUTABLE STRICT;
-- The classes for highways are derived from the classes used in ClearTables -- The classes for highways are derived from the classes used in ClearTables
-- https://github.com/ClearTables/ClearTables/blob/master/transportation.lua -- https://github.com/ClearTables/ClearTables/blob/master/transportation.lua
CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT) RETURNS TEXT AS $$ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT, construction TEXT) RETURNS TEXT AS $$
SELECT CASE SELECT CASE
WHEN highway IN ('motorway', 'motorway_link') THEN 'motorway' WHEN highway IN ('motorway', 'motorway_link') THEN 'motorway'
WHEN highway IN ('trunk', 'trunk_link') THEN 'trunk' WHEN highway IN ('trunk', 'trunk_link') THEN 'trunk'
@ -17,9 +17,19 @@ CREATE OR REPLACE FUNCTION highway_class(highway TEXT, public_transport TEXT) RE
WHEN highway IN ('secondary', 'secondary_link') THEN 'secondary' WHEN highway IN ('secondary', 'secondary_link') THEN 'secondary'
WHEN highway IN ('tertiary', 'tertiary_link') THEN 'tertiary' WHEN highway IN ('tertiary', 'tertiary_link') THEN 'tertiary'
WHEN highway IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor' 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') OR public_transport IN ('platform') THEN 'path' WHEN highway IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR public_transport IN ('platform') THEN 'path'
WHEN highway = 'raceway' THEN 'raceway' WHEN highway IN ('service', 'track', 'raceway') THEN highway
WHEN highway = 'construction' THEN CASE
WHEN construction IN ('motorway', 'motorway_link') THEN 'motorway_construction'
WHEN construction IN ('trunk', 'trunk_link') THEN 'trunk_construction'
WHEN construction IN ('primary', 'primary_link') THEN 'primary_construction'
WHEN construction IN ('secondary', 'secondary_link') THEN 'secondary_construction'
WHEN construction IN ('tertiary', 'tertiary_link') THEN 'tertiary_construction'
WHEN construction = '' OR construction IN ('unclassified', 'residential', 'living_street', 'road') THEN 'minor_construction'
WHEN construction IN ('pedestrian', 'path', 'footway', 'cycleway', 'steps', 'bridleway', 'corridor') OR public_transport IN ('platform') THEN 'path_construction'
WHEN construction IN ('service', 'track', 'raceway') THEN CONCAT(highway, '_construction')
ELSE NULL
END
ELSE NULL ELSE NULL
END; END;
$$ LANGUAGE SQL IMMUTABLE; $$ LANGUAGE SQL IMMUTABLE;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 491 KiB

View File

@ -8,11 +8,11 @@ $$ 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, surface TEXT) AS $$ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT, surface TEXT) AS $$
SELECT SELECT
osm_id, geometry, osm_id, geometry,
CASE CASE
WHEN NULLIF(highway, '') IS NOT NULL OR NULLIF(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, construction)
WHEN NULLIF(railway, '') IS NOT NULL THEN railway_class(railway) WHEN NULLIF(railway, '') IS NOT NULL THEN railway_class(railway)
WHEN NULLIF(aerialway, '') IS NOT NULL THEN aerialway WHEN NULLIF(aerialway, '') IS NOT NULL THEN aerialway
WHEN NULLIF(shipway, '') IS NOT NULL THEN shipway WHEN NULLIF(shipway, '') IS NOT NULL THEN shipway
@ -21,7 +21,7 @@ indoor INT, surface TEXT) AS $$
CASE CASE
WHEN railway IS NOT NULL THEN railway WHEN railway IS NOT NULL THEN railway
WHEN (highway IS NOT NULL OR public_transport IS NOT NULL) WHEN (highway IS NOT NULL OR public_transport IS NOT NULL)
AND highway_class(highway, public_transport) = 'path' AND highway_class(highway, public_transport, construction) = 'path'
THEN COALESCE(NULLIF(public_transport, ''), highway) THEN COALESCE(NULLIF(public_transport, ''), highway)
ELSE NULL ELSE NULL
END AS subclass, END AS subclass,
@ -34,19 +34,23 @@ indoor INT, surface TEXT) AS $$
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,
NULLIF(surface, '') AS surface NULLIF(surface, '') AS surface
FROM ( FROM (
-- etldoc: osm_transportation_merge_linestring_gen7 -> layer_transportation:z4 -- etldoc: osm_transportation_merge_linestring_gen7 -> layer_transportation:z4
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
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 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 surface, NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
z_order NULL AS surface, z_order
FROM osm_transportation_merge_linestring_gen7 FROM osm_transportation_merge_linestring_gen7
WHERE zoom_level = 4 WHERE zoom_level = 4
UNION ALL UNION ALL
@ -54,12 +58,13 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_transportation_merge_linestring_gen6 -> layer_transportation:z5 -- etldoc: osm_transportation_merge_linestring_gen6 -> layer_transportation:z5
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
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 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_transportation_merge_linestring_gen6 FROM osm_transportation_merge_linestring_gen6
WHERE zoom_level = 5 WHERE zoom_level = 5
@ -68,12 +73,13 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_transportation_merge_linestring_gen5 -> layer_transportation:z6 -- etldoc: osm_transportation_merge_linestring_gen5 -> layer_transportation:z6
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
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 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_transportation_merge_linestring_gen5 FROM osm_transportation_merge_linestring_gen5
WHERE zoom_level = 6 WHERE zoom_level = 6
@ -82,12 +88,13 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_transportation_merge_linestring_gen4 -> layer_transportation:z7 -- etldoc: osm_transportation_merge_linestring_gen4 -> layer_transportation:z7
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
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 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_transportation_merge_linestring_gen4 FROM osm_transportation_merge_linestring_gen4
WHERE zoom_level = 7 WHERE zoom_level = 7
@ -96,12 +103,13 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_transportation_merge_linestring_gen3 -> layer_transportation:z8 -- etldoc: osm_transportation_merge_linestring_gen3 -> layer_transportation:z8
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
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 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_transportation_merge_linestring_gen3 FROM osm_transportation_merge_linestring_gen3
WHERE zoom_level = 8 WHERE zoom_level = 8
@ -111,12 +119,13 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_highway_linestring_gen2 -> layer_transportation:z10 -- etldoc: osm_highway_linestring_gen2 -> layer_transportation:z10
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
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 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,
NULL AS surface, z_order NULL AS surface, 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
@ -126,12 +135,13 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_highway_linestring_gen1 -> layer_transportation:z11 -- etldoc: osm_highway_linestring_gen1 -> layer_transportation:z11
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
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 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_highway_linestring_gen1 FROM osm_highway_linestring_gen1
WHERE zoom_level = 11 WHERE zoom_level = 11
@ -143,7 +153,7 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_highway_linestring -> layer_transportation:z14_ -- etldoc: osm_highway_linestring -> layer_transportation:z14_
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, construction, 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, man_made, is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, man_made,
layer, layer,
@ -153,17 +163,18 @@ indoor INT, surface TEXT) 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,
surface_value(surface) AS "surface", surface_value(surface) AS "surface",
z_order z_order
FROM osm_highway_linestring FROM osm_highway_linestring
WHERE NOT is_area AND ( WHERE NOT is_area AND (
zoom_level = 12 AND ( zoom_level = 12 AND (
highway_class(highway, public_transport) NOT IN ('track', 'path', 'minor') highway_class(highway, public_transport, construction) NOT IN ('track', 'path', 'minor')
OR highway IN ('unclassified', 'residential') OR highway IN ('unclassified', 'residential')
) AND man_made <> 'pier' ) AND man_made <> 'pier'
OR zoom_level = 13 OR zoom_level = 13
AND ( AND (
highway_class(highway, public_transport) NOT IN ('track', 'path') AND man_made <> 'pier' highway_class(highway, public_transport, construction) NOT IN ('track', 'path') AND man_made <> 'pier'
OR OR
man_made = 'pier' AND NOT ST_IsClosed(geometry) man_made = 'pier' AND NOT ST_IsClosed(geometry)
) )
@ -179,12 +190,13 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_railway_linestring_gen5 -> layer_transportation:z8 -- etldoc: osm_railway_linestring_gen5 -> layer_transportation:z8
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, NULL AS construction, 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,
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 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,
NULL as surface, z_order NULL as surface, z_order
FROM osm_railway_linestring_gen5 FROM osm_railway_linestring_gen5
WHERE zoom_level = 8 WHERE zoom_level = 8
@ -194,12 +206,13 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_railway_linestring_gen4 -> layer_transportation:z9 -- etldoc: osm_railway_linestring_gen4 -> layer_transportation:z9
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, NULL AS construction, 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,
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 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_railway_linestring_gen4 FROM osm_railway_linestring_gen4
WHERE zoom_level = 9 WHERE zoom_level = 9
@ -209,10 +222,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_railway_linestring_gen3 -> layer_transportation:z10 -- etldoc: osm_railway_linestring_gen3 -> layer_transportation:z10
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_railway_linestring_gen3 FROM osm_railway_linestring_gen3
WHERE zoom_level = 10 WHERE zoom_level = 10
@ -222,10 +236,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_railway_linestring_gen2 -> layer_transportation:z11 -- etldoc: osm_railway_linestring_gen2 -> layer_transportation:z11
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL as surface, z_order NULL as surface, z_order
FROM osm_railway_linestring_gen2 FROM osm_railway_linestring_gen2
WHERE zoom_level = 11 WHERE zoom_level = 11
@ -235,10 +250,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_railway_linestring_gen1 -> layer_transportation:z12 -- etldoc: osm_railway_linestring_gen1 -> layer_transportation:z12
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL as surface, z_order NULL as surface, z_order
FROM osm_railway_linestring_gen1 FROM osm_railway_linestring_gen1
WHERE zoom_level = 12 WHERE zoom_level = 12
@ -249,10 +265,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_railway_linestring -> layer_transportation:z14_ -- etldoc: osm_railway_linestring -> layer_transportation:z14_
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, railway, NULL AS aerialway, NULL AS shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL as surface, z_order NULL as surface, z_order
FROM osm_railway_linestring FROM osm_railway_linestring
WHERE zoom_level = 13 WHERE zoom_level = 13
@ -263,10 +280,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_aerialway_linestring_gen1 -> layer_transportation:z12 -- etldoc: osm_aerialway_linestring_gen1 -> layer_transportation:z12
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL as railway, aerialway, NULL AS shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_aerialway_linestring_gen1 FROM osm_aerialway_linestring_gen1
WHERE zoom_level = 12 WHERE zoom_level = 12
@ -276,10 +294,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_aerialway_linestring -> layer_transportation:z14_ -- etldoc: osm_aerialway_linestring -> layer_transportation:z14_
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL as railway, aerialway, NULL AS shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_aerialway_linestring FROM osm_aerialway_linestring
WHERE zoom_level >= 13 WHERE zoom_level >= 13
@ -288,10 +307,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_shipway_linestring_gen2 -> layer_transportation:z11 -- etldoc: osm_shipway_linestring_gen2 -> layer_transportation:z11
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_shipway_linestring_gen2 FROM osm_shipway_linestring_gen2
WHERE zoom_level = 11 WHERE zoom_level = 11
@ -300,10 +320,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_shipway_linestring_gen1 -> layer_transportation:z12 -- etldoc: osm_shipway_linestring_gen1 -> layer_transportation:z12
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_shipway_linestring_gen1 FROM osm_shipway_linestring_gen1
WHERE zoom_level = 12 WHERE zoom_level = 12
@ -313,10 +334,11 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_shipway_linestring -> layer_transportation:z14_ -- etldoc: osm_shipway_linestring -> layer_transportation:z14_
SELECT SELECT
osm_id, geometry, osm_id, geometry,
NULL AS highway, NULL AS railway, NULL AS aerialway, shipway, NULL AS highway, NULL AS construction, 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, 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,
NULL AS surface, z_order NULL AS surface, z_order
FROM osm_shipway_linestring FROM osm_shipway_linestring
WHERE zoom_level >= 13 WHERE zoom_level >= 13
@ -330,13 +352,14 @@ indoor INT, surface TEXT) AS $$
-- etldoc: osm_highway_polygon -> layer_transportation:z14_ -- etldoc: osm_highway_polygon -> layer_transportation:z14_
SELECT SELECT
osm_id, geometry, osm_id, geometry,
highway, NULL AS railway, NULL AS aerialway, NULL AS shipway, highway, NULL AS construction, NULL AS railway, NULL AS aerialway, NULL AS shipway,
public_transport, NULL AS service, public_transport, NULL AS service,
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, 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,
NULL AS surface, z_order NULL AS surface, 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

View File

@ -45,13 +45,13 @@ generalized_tables:
# etldoc: imposm3 -> osm_highway_linestring_gen2 # etldoc: imposm3 -> osm_highway_linestring_gen2
highway_linestring_gen2: highway_linestring_gen2:
source: highway_linestring_gen1 source: highway_linestring_gen1
sql_filter: highway IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link') AND NOT is_area sql_filter: (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary', 'secondary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link')) AND NOT is_area
tolerance: ZRES11 tolerance: ZRES11
# etldoc: imposm3 -> osm_highway_linestring_gen1 # etldoc: imposm3 -> osm_highway_linestring_gen1
highway_linestring_gen1: highway_linestring_gen1:
source: highway_linestring source: highway_linestring
sql_filter: highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') AND NOT is_area AND ST_IsValid(geometry) sql_filter: (highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link') OR highway = 'construction' AND construction IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary', 'motorway_link', 'trunk_link', 'primary_link', 'secondary_link', 'tertiary_link')) AND NOT is_area AND ST_IsValid(geometry)
tolerance: ZRES12 tolerance: ZRES12
name_field: &name name_field: &name
@ -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
surface_field: &surface surface_field: &surface
key: surface key: surface
name: surface name: surface
@ -150,6 +166,9 @@ tables:
- name: highway - name: highway
key: highway key: highway
type: string type: string
- name: construction
key: construction
type: string
- *ref - *ref
- *network - *network
- *z_order - *z_order
@ -172,6 +191,10 @@ tables:
- *usage - *usage
- *public_transport - *public_transport
- *man_made - *man_made
- *bicycle
- *foot
- *horse
- *mtb_scale
- *surface - *surface
mapping: mapping:
highway: highway:
@ -187,18 +210,19 @@ tables:
- tertiary_link - tertiary_link
- unclassified - unclassified
- residential - residential
- road
- living_street - living_street
- raceway - road
- track
- service
- path
- cycleway
- bridleway
- footway
- corridor
- pedestrian - pedestrian
- path
- footway
- cycleway
- steps - steps
- bridleway
- corridor
- service
- track
- raceway
- construction
public_transport: public_transport:
- platform - platform
man_made: man_made:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

@ -14,9 +14,10 @@ layer:
fields: fields:
class: class:
description: | description: |
Distinguish between more and less important roads or railways. Distinguish between more and less important roads or railways and roads under construction.
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),
[`construction`](http://wiki.openstreetmap.org/wiki/Key:construction),
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway), [`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
[`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway), [`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
@ -33,6 +34,16 @@ layer:
- track - track
- path - path
- raceway - raceway
- motorway_construction
- trunk_construction
- primary_construction
- secondary_construction
- tertiary_construction
- minor_construction
- service_construction
- track_construction
- path_construction
- raceway_construction
- rail - rail
- transit - transit
- cable_car - cable_car
@ -95,17 +106,29 @@ 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).
horse:
description: |
Original value of the [`horse`](http://wiki.openstreetmap.org/wiki/Key:horse) tag (highways only).
mtb_scale:
description: |
Original value of the [`mtb:scale`](http://wiki.openstreetmap.org/wiki/Key:mtb:scale) tag (highways only).
surface: surface:
description: | description: |
Values of [`surface`](https://wiki.openstreetmap.org/wiki/Key:surface) tag devided into 2 groups `paved` (paved, asphalt, cobblestone, concrete, concrete:lanes, concrete:plates, metal, paving_stones, sett, unhewn_cobblestone, wood) and `unpaved` (unpaved, compacted, dirt, earth, fine_gravel, grass, grass_paver, gravel, gravel_turf, ground, ice, mud, pebblestone, salt, sand, snow, woodchips). Values of [`surface`](https://wiki.openstreetmap.org/wiki/Key:surface) tag devided into 2 groups `paved` (paved, asphalt, cobblestone, concrete, concrete:lanes, concrete:plates, metal, paving_stones, sett, unhewn_cobblestone, wood) and `unpaved` (unpaved, compacted, dirt, earth, fine_gravel, grass, grass_paver, gravel, gravel_turf, ground, ice, mud, pebblestone, salt, sand, snow, woodchips).
@ -115,7 +138,7 @@ layer:
datasource: datasource:
geometry_field: geometry geometry_field: geometry
srid: 900913 srid: 900913
query: (SELECT geometry, class, subclass, oneway, ramp, brunnel, service, layer, level, indoor, surface 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, surface FROM layer_transportation(!bbox!, z(!scale_denominator!))) AS t
schema: schema:
- ./class.sql - ./class.sql
- ./update_transportation_merge.sql - ./update_transportation_merge.sql

View File

@ -22,84 +22,88 @@ CREATE INDEX IF NOT EXISTS osm_highway_linestring_highway_idx
-- Improve performance of the sql below -- Improve performance of the sql below
CREATE INDEX IF NOT EXISTS osm_highway_linestring_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_highway_linestring_highway_partial_idx
ON osm_highway_linestring(highway) ON osm_highway_linestring(highway)
WHERE highway IN ('motorway','trunk', 'primary'); WHERE highway IN ('motorway','trunk', 'primary', 'construction');
-- etldoc: osm_highway_linestring -> osm_transportation_merge_linestring -- etldoc: osm_highway_linestring -> osm_transportation_merge_linestring
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring AS ( CREATE MATERIALIZED VIEW osm_transportation_merge_linestring AS (
SELECT SELECT
(ST_Dump(geometry)).geom AS geometry, (ST_Dump(geometry)).geom AS geometry,
NULL::bigint AS osm_id, NULL::bigint AS osm_id,
highway, highway, construction,
z_order z_order
FROM ( FROM (
SELECT SELECT
ST_LineMerge(ST_Collect(geometry)) AS geometry, ST_LineMerge(ST_Collect(geometry)) AS geometry,
highway, highway, construction,
min(z_order) AS z_order min(z_order) AS z_order
FROM osm_highway_linestring FROM osm_highway_linestring
WHERE highway IN ('motorway','trunk', 'primary') AND ST_IsValid(geometry) WHERE (highway IN ('motorway','trunk', 'primary') OR highway = 'construction' AND construction IN ('motorway','trunk', 'primary'))
group by highway AND ST_IsValid(geometry)
group by highway, construction
) AS highway_union ) AS highway_union
); );
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_geometry_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_geometry_idx
ON osm_transportation_merge_linestring USING gist(geometry); ON osm_transportation_merge_linestring USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_highway_partial_idx
ON osm_transportation_merge_linestring(highway) ON osm_transportation_merge_linestring(highway, construction)
WHERE highway IN ('motorway','trunk', 'primary'); WHERE highway IN ('motorway','trunk', 'primary', 'construction');
-- etldoc: osm_transportation_merge_linestring -> osm_transportation_merge_linestring_gen3 -- etldoc: osm_transportation_merge_linestring -> osm_transportation_merge_linestring_gen3
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen3 AS ( CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen3 AS (
SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, highway, z_order SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, highway, construction, z_order
FROM osm_transportation_merge_linestring FROM osm_transportation_merge_linestring
WHERE highway IN ('motorway','trunk', 'primary') WHERE highway IN ('motorway','trunk', 'primary')
OR highway = 'construction' AND construction IN ('motorway','trunk', 'primary')
); );
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen3_geometry_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen3_geometry_idx
ON osm_transportation_merge_linestring_gen3 USING gist(geometry); ON osm_transportation_merge_linestring_gen3 USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen3_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen3_highway_partial_idx
ON osm_transportation_merge_linestring_gen3(highway) ON osm_transportation_merge_linestring_gen3(highway, construction)
WHERE highway IN ('motorway','trunk', 'primary'); WHERE highway IN ('motorway','trunk', 'primary', 'construction');
-- etldoc: osm_transportation_merge_linestring_gen3 -> osm_transportation_merge_linestring_gen4 -- etldoc: osm_transportation_merge_linestring_gen3 -> osm_transportation_merge_linestring_gen4
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen4 AS ( CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen4 AS (
SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, highway, z_order SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, highway, construction, z_order
FROM osm_transportation_merge_linestring_gen3 FROM osm_transportation_merge_linestring_gen3
WHERE highway IN ('motorway','trunk', 'primary') AND ST_Length(geometry) > 50 WHERE (highway IN ('motorway','trunk', 'primary') OR highway = 'construction' AND construction IN ('motorway','trunk', 'primary'))
AND ST_Length(geometry) > 50
); );
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen4_geometry_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen4_geometry_idx
ON osm_transportation_merge_linestring_gen4 USING gist(geometry); ON osm_transportation_merge_linestring_gen4 USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen4_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen4_highway_partial_idx
ON osm_transportation_merge_linestring_gen4(highway) ON osm_transportation_merge_linestring_gen4(highway, construction)
WHERE highway IN ('motorway','trunk', 'primary'); WHERE highway IN ('motorway','trunk', 'primary', 'construction');
-- etldoc: osm_transportation_merge_linestring_gen4 -> osm_transportation_merge_linestring_gen5 -- etldoc: osm_transportation_merge_linestring_gen4 -> osm_transportation_merge_linestring_gen5
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen5 AS ( CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen5 AS (
SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, highway, z_order SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, highway, construction, z_order
FROM osm_transportation_merge_linestring_gen4 FROM osm_transportation_merge_linestring_gen4
WHERE highway IN ('motorway','trunk') AND ST_Length(geometry) > 100 WHERE (highway IN ('motorway','trunk') OR highway = 'construction' AND construction IN ('motorway','trunk'))
AND ST_Length(geometry) > 100
); );
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen5_geometry_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen5_geometry_idx
ON osm_transportation_merge_linestring_gen5 USING gist(geometry); ON osm_transportation_merge_linestring_gen5 USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen5_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen5_highway_partial_idx
ON osm_transportation_merge_linestring_gen5(highway) ON osm_transportation_merge_linestring_gen5(highway, construction)
WHERE highway IN ('motorway', 'trunk'); WHERE highway IN ('motorway','trunk', 'construction');
-- etldoc: osm_transportation_merge_linestring_gen5 -> osm_transportation_merge_linestring_gen6 -- etldoc: osm_transportation_merge_linestring_gen5 -> osm_transportation_merge_linestring_gen6
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen6 AS ( CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen6 AS (
SELECT ST_Simplify(geometry, 1000) AS geometry, osm_id, highway, z_order SELECT ST_Simplify(geometry, 1000) AS geometry, osm_id, highway, construction, z_order
FROM osm_transportation_merge_linestring_gen5 FROM osm_transportation_merge_linestring_gen5
WHERE highway IN ('motorway','trunk') AND ST_Length(geometry) > 500 WHERE (highway IN ('motorway','trunk') OR highway = 'construction' AND construction IN ('motorway','trunk')) AND ST_Length(geometry) > 500
); );
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen6_geometry_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen6_geometry_idx
ON osm_transportation_merge_linestring_gen6 USING gist(geometry); ON osm_transportation_merge_linestring_gen6 USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen6_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen6_highway_partial_idx
ON osm_transportation_merge_linestring_gen6(highway) ON osm_transportation_merge_linestring_gen6(highway, construction)
WHERE highway IN ('motorway','trunk'); WHERE highway IN ('motorway','trunk', 'construction');
-- etldoc: osm_transportation_merge_linestring_gen6 -> osm_transportation_merge_linestring_gen7 -- etldoc: osm_transportation_merge_linestring_gen6 -> osm_transportation_merge_linestring_gen7
CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen7 AS ( CREATE MATERIALIZED VIEW osm_transportation_merge_linestring_gen7 AS (
SELECT ST_Simplify(geometry, 2000) AS geometry, osm_id, highway, z_order SELECT ST_Simplify(geometry, 2000) AS geometry, osm_id, highway, construction, z_order
FROM osm_transportation_merge_linestring_gen6 FROM osm_transportation_merge_linestring_gen6
WHERE highway IN ('motorway') AND ST_Length(geometry) > 1000 WHERE (highway = 'motorway' OR highway = 'construction' AND construction = 'motorway') AND ST_Length(geometry) > 1000
); );
CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen7_geometry_idx CREATE INDEX IF NOT EXISTS osm_transportation_merge_linestring_gen7_geometry_idx
ON osm_transportation_merge_linestring_gen7 USING gist(geometry); ON osm_transportation_merge_linestring_gen7 USING gist(geometry);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 334 KiB

View File

@ -19,9 +19,9 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
when length(coalesce(ref, ''))>0 when length(coalesce(ref, ''))>0
then 'road' then 'road'
end as network, end as network,
highway_class(highway, '') AS class, highway_class(highway, '', construction) AS class,
CASE CASE
WHEN highway IS NOT NULL AND highway_class(highway, '') = 'path' WHEN highway IS NOT NULL AND highway_class(highway, '', construction) = 'path'
THEN highway THEN highway
ELSE NULL ELSE NULL
END AS subclass, END AS subclass,
@ -70,6 +70,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
"tags", "tags",
ref, ref,
highway, highway,
construction,
network, network,
z_order, z_order,
layer, layer,
@ -78,7 +79,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
FROM osm_transportation_name_linestring FROM osm_transportation_name_linestring
WHERE zoom_level = 12 WHERE zoom_level = 12
AND LineLabel(zoom_level, COALESCE(NULLIF(name, ''), ref), geometry) AND LineLabel(zoom_level, COALESCE(NULLIF(name, ''), ref), geometry)
AND highway_class(highway, '') NOT IN ('minor', 'track', 'path') AND highway_class(highway, '', construction) NOT IN ('minor', 'track', 'path')
AND NOT highway_is_link(highway) AND NOT highway_is_link(highway)
UNION ALL UNION ALL
@ -92,6 +93,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
"tags", "tags",
ref, ref,
highway, highway,
construction,
network, network,
z_order, z_order,
layer, layer,
@ -100,7 +102,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
FROM osm_transportation_name_linestring FROM osm_transportation_name_linestring
WHERE zoom_level = 13 WHERE zoom_level = 13
AND LineLabel(zoom_level, COALESCE(NULLIF(name, ''), ref), geometry) AND LineLabel(zoom_level, COALESCE(NULLIF(name, ''), ref), geometry)
AND highway_class(highway, '') NOT IN ('track', 'path') AND highway_class(highway, '', construction) NOT IN ('track', 'path')
UNION ALL UNION ALL
-- etldoc: osm_transportation_name_linestring -> layer_transportation_name:z14_ -- etldoc: osm_transportation_name_linestring -> layer_transportation_name:z14_
@ -113,6 +115,7 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
"tags", "tags",
ref, ref,
highway, highway,
construction,
network, network,
z_order, z_order,
layer, layer,

View File

@ -29,7 +29,7 @@ layer:
- road (default) - road (default)
class: class:
description: | description: |
Distinguish between more and less important roads. Distinguish between more and less important roads and roads under construction.
values: values:
- motorway - motorway
- trunk - trunk
@ -41,6 +41,16 @@ layer:
- track - track
- path - path
- raceway - raceway
- motorway_construction
- trunk_construction
- primary_construction
- secondary_construction
- tertiary_construction
- minor_construction
- service_construction
- track_construction
- path_construction
- raceway_construction
- rail - rail
- transit - transit
subclass: subclass:

View File

@ -8,14 +8,14 @@ BEGIN
select st_buffer(geometry, 10000) into gbr_geom from ne_10m_admin_0_countries where iso_a2 = 'GB'; 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'); delete from osm_route_member where network IN('omt-gb-motorway', 'omt-gb-trunk');
insert into osm_route_member (member, ref, network) insert into osm_route_member (osm_id, member, ref, network)
( (
SELECT hw.osm_id, substring(hw.ref from E'^[AM][0-9AM()]+'), 'omt-gb-motorway' SELECT 0, hw.osm_id, substring(hw.ref from E'^[AM][0-9AM()]+'), 'omt-gb-motorway'
from osm_highway_linestring hw from osm_highway_linestring hw
where length(hw.ref)>0 and ST_Intersects(hw.geometry, gbr_geom) where length(hw.ref)>0 and ST_Intersects(hw.geometry, gbr_geom)
and hw.highway IN ('motorway') and hw.highway IN ('motorway')
) UNION ( ) UNION (
SELECT hw.osm_id, substring(hw.ref from E'^[AM][0-9AM()]+'), 'omt-gb-trunk' SELECT 0, hw.osm_id, substring(hw.ref from E'^[AM][0-9AM()]+'), 'omt-gb-trunk'
from osm_highway_linestring hw from osm_highway_linestring hw
where length(hw.ref)>0 and ST_Intersects(hw.geometry, gbr_geom) where length(hw.ref)>0 and ST_Intersects(hw.geometry, gbr_geom)
and hw.highway IN ('trunk') and hw.highway IN ('trunk')

View File

@ -24,6 +24,7 @@ CREATE MATERIALIZED VIEW osm_transportation_name_network AS (
else hl.ref else hl.ref
end as ref, end as ref,
hl.highway, hl.highway,
hl.construction,
CASE WHEN highway IN ('footway', 'steps') THEN layer CASE WHEN highway IN ('footway', 'steps') THEN layer
ELSE NULL::int ELSE NULL::int
END AS layer, END AS layer,
@ -53,6 +54,7 @@ CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
tags || get_basic_names(tags, geometry) AS "tags", tags || get_basic_names(tags, geometry) AS "tags",
ref, ref,
highway, highway,
construction,
"level", "level",
layer, layer,
indoor, indoor,
@ -68,6 +70,7 @@ CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
AS "tags", AS "tags",
ref, ref,
highway, highway,
construction,
"level", "level",
layer, layer,
indoor, indoor,
@ -77,56 +80,56 @@ CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
WHERE ("rank"=1 OR "rank" is null) WHERE ("rank"=1 OR "rank" is null)
AND (name <> '' OR ref <> '') AND (name <> '' OR ref <> '')
AND NULLIF(highway, '') IS NOT NULL AND NULLIF(highway, '') IS NOT NULL
group by name, name_en, name_de, ref, highway, "level", layer, indoor, network_type group by name, name_en, name_de, ref, highway, construction, "level", layer, indoor, network_type
) AS highway_union ) AS highway_union
); );
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_geometry_idx ON osm_transportation_name_linestring USING gist(geometry); CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_geometry_idx ON osm_transportation_name_linestring USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_highway_partial_idx
ON osm_transportation_name_linestring(highway) ON osm_transportation_name_linestring(highway, construction)
WHERE highway IN ('motorway','trunk'); WHERE highway IN ('motorway','trunk', 'construction');
-- etldoc: osm_transportation_name_linestring -> osm_transportation_name_linestring_gen1 -- etldoc: osm_transportation_name_linestring -> osm_transportation_name_linestring_gen1
CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen1 AS ( CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen1 AS (
SELECT ST_Simplify(geometry, 50) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, network, z_order SELECT ST_Simplify(geometry, 50) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, construction, network, z_order
FROM osm_transportation_name_linestring FROM osm_transportation_name_linestring
WHERE highway IN ('motorway','trunk') AND ST_Length(geometry) > 8000 WHERE (highway IN ('motorway','trunk') OR highway = 'construction' AND construction IN ('motorway','trunk')) AND ST_Length(geometry) > 8000
); );
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen1_geometry_idx ON osm_transportation_name_linestring_gen1 USING gist(geometry); CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen1_geometry_idx ON osm_transportation_name_linestring_gen1 USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen1_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen1_highway_partial_idx
ON osm_transportation_name_linestring_gen1(highway) ON osm_transportation_name_linestring_gen1(highway, construction)
WHERE highway IN ('motorway','trunk'); WHERE highway IN ('motorway','trunk', 'construction');
-- etldoc: osm_transportation_name_linestring_gen1 -> osm_transportation_name_linestring_gen2 -- etldoc: osm_transportation_name_linestring_gen1 -> osm_transportation_name_linestring_gen2
CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen2 AS ( CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen2 AS (
SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, network, z_order SELECT ST_Simplify(geometry, 120) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, construction, network, z_order
FROM osm_transportation_name_linestring_gen1 FROM osm_transportation_name_linestring_gen1
WHERE highway IN ('motorway','trunk') AND ST_Length(geometry) > 14000 WHERE (highway IN ('motorway','trunk') OR highway = 'construction' AND construction IN ('motorway','trunk')) AND ST_Length(geometry) > 14000
); );
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen2_geometry_idx ON osm_transportation_name_linestring_gen2 USING gist(geometry); CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen2_geometry_idx ON osm_transportation_name_linestring_gen2 USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen2_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen2_highway_partial_idx
ON osm_transportation_name_linestring_gen2(highway) ON osm_transportation_name_linestring_gen2(highway, construction)
WHERE highway = 'motorway'; WHERE highway IN ('motorway','trunk', 'construction');
-- etldoc: osm_transportation_name_linestring_gen2 -> osm_transportation_name_linestring_gen3 -- etldoc: osm_transportation_name_linestring_gen2 -> osm_transportation_name_linestring_gen3
CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen3 AS ( CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen3 AS (
SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, network, z_order SELECT ST_Simplify(geometry, 200) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, construction, network, z_order
FROM osm_transportation_name_linestring_gen2 FROM osm_transportation_name_linestring_gen2
WHERE highway = 'motorway' AND ST_Length(geometry) > 20000 WHERE (highway = 'motorway' OR highway = 'construction' AND construction = 'motorway') AND ST_Length(geometry) > 20000
); );
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen3_geometry_idx ON osm_transportation_name_linestring_gen3 USING gist(geometry); CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen3_geometry_idx ON osm_transportation_name_linestring_gen3 USING gist(geometry);
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen3_highway_partial_idx CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen3_highway_partial_idx
ON osm_transportation_name_linestring_gen3(highway) ON osm_transportation_name_linestring_gen3(highway, construction)
WHERE highway = 'motorway'; WHERE highway IN ('motorway', 'construction');
-- etldoc: osm_transportation_name_linestring_gen3 -> osm_transportation_name_linestring_gen4 -- etldoc: osm_transportation_name_linestring_gen3 -> osm_transportation_name_linestring_gen4
CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen4 AS ( CREATE MATERIALIZED VIEW osm_transportation_name_linestring_gen4 AS (
SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, network, z_order SELECT ST_Simplify(geometry, 500) AS geometry, osm_id, name, name_en, name_de, tags, ref, highway, construction, network, z_order
FROM osm_transportation_name_linestring_gen3 FROM osm_transportation_name_linestring_gen3
WHERE highway = 'motorway' AND ST_Length(geometry) > 20000 WHERE (highway = 'motorway' OR highway = 'construction' AND construction = 'motorway') AND ST_Length(geometry) > 20000
); );
CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen4_geometry_idx ON osm_transportation_name_linestring_gen4 USING gist(geometry); CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen4_geometry_idx ON osm_transportation_name_linestring_gen4 USING gist(geometry);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -27,6 +27,7 @@ tileset:
minzoom: 0 minzoom: 0
pixel_scale: 256 pixel_scale: 256
languages: languages:
- am # Amharic
- ar # Arabic - ar # Arabic
- az # Azerbaijani, Latin - az # Azerbaijani, Latin
- be # Belarusian - be # Belarusian
@ -65,6 +66,7 @@ tileset:
- kn # Kannada - kn # Kannada
- ko # Korean - ko # Korean
- ko_rm # romanization of Korean, Latin - ko_rm # romanization of Korean, Latin
- ku # Kurdish, Latin
- la # Latin, Latin - la # Latin, Latin
- lb # Luxembourgish, Latin - lb # Luxembourgish, Latin
- lt # Lithuanian, Latin - lt # Lithuanian, Latin