Merge branch 'master' into zlw-urban-areas

pull/1454/head
Brian Sperlongano 2023-01-13 12:58:20 -05:00 zatwierdzone przez GitHub
commit 620f676817
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
31 zmienionych plików z 1067 dodań i 301 usunięć

Wyświetl plik

@ -63,7 +63,7 @@
"iata"
]
],
"order": 181
"order": 190
}
]
}

Wyświetl plik

@ -157,7 +157,7 @@
"taxiway"
]
],
"order": 182
"order": 191
},
{
"id": "airport_gate",
@ -197,7 +197,7 @@
"gate"
]
],
"order": 183
"order": 192
}
]
}

Wyświetl plik

@ -61,7 +61,7 @@
0
]
],
"order": 137
"order": 146
},
{
"id": "boundary_2",
@ -114,7 +114,7 @@
0
]
],
"order": 138
"order": 147
},
{
"id": "boundary_2_disputed",
@ -171,7 +171,7 @@
0
]
],
"order": 139
"order": 148
},
{
"id": "boundary_2_disputed_maritime",
@ -228,7 +228,7 @@
1
]
],
"order": 140
"order": 149
},
{
"id": "boundary_2_maritime",
@ -281,7 +281,7 @@
1
]
],
"order": 141
"order": 150
}
]
}

Wyświetl plik

@ -34,7 +34,7 @@
"text-halo-color": "rgba(255,255,255,0.8)",
"text-halo-width": 1
},
"order": 145
"order": 154
}
]
}

Wyświetl plik

@ -46,7 +46,7 @@
"cliff"
]
],
"order": 188
"order": 197
}
]
}

Wyświetl plik

@ -105,7 +105,7 @@
2
]
],
"order": 186
"order": 195
}
]
}

Wyświetl plik

@ -177,6 +177,7 @@ tables:
- town
- village
- hamlet
- borough
- suburb
- quarter
- neighbourhood

Plik binarny nie jest wyświetlany.

Przed

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

Po

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

Wyświetl plik

@ -38,6 +38,7 @@ layer:
- town
- village
- hamlet
- borough
- suburb
- quarter
- neighbourhood

Wyświetl plik

@ -82,10 +82,11 @@
"island",
"islet",
"neighbourhood",
"suburb"
"suburb",
"borough"
]
],
"order": 184
"order": 193
},
{
"id": "place_village",
@ -128,7 +129,7 @@
"village"
]
],
"order": 189
"order": 198
},
{
"id": "place_town",
@ -176,7 +177,7 @@
"town"
]
],
"order": 190
"order": 199
},
{
"id": "place_state",
@ -227,7 +228,7 @@
3
]
],
"order": 191
"order": 200
},
{
"id": "place_city",
@ -310,7 +311,7 @@
1
]
],
"order": 192
"order": 201
},
{
"id": "place_capital",
@ -395,7 +396,7 @@
2
]
],
"order": 193
"order": 202
},
{
"id": "country_other",
@ -448,7 +449,7 @@
"iso_a2"
]
],
"order": 194
"order": 203
},
{
"id": "country_3",
@ -517,7 +518,7 @@
"iso_a2"
]
],
"order": 195
"order": 204
},
{
"id": "country_2",
@ -586,7 +587,7 @@
"iso_a2"
]
],
"order": 196
"order": 205
},
{
"id": "country_1",
@ -655,7 +656,7 @@
"iso_a2"
]
],
"order": 197
"order": 206
}
]
}

Wyświetl plik

@ -4,7 +4,7 @@ $$
PERFORM 'city_place'::regtype;
EXCEPTION
WHEN undefined_object THEN
CREATE TYPE city_place AS enum ('city', 'town', 'village', 'hamlet', 'suburb', 'quarter', 'neighbourhood', 'isolated_dwelling');
CREATE TYPE city_place AS enum ('city', 'town', 'village', 'hamlet', 'borough', 'suburb', 'quarter', 'neighbourhood', 'isolated_dwelling');
END
$$;

Wyświetl plik

@ -75,7 +75,7 @@
"artwork"
]
],
"order": 146
"order": 155
},
{
"id": "poi_shop-z15",
@ -139,7 +139,7 @@
"supermarket"
]
],
"order": 147
"order": 156
},
{
"id": "poi_waste",
@ -197,7 +197,7 @@
"toilets"
]
],
"order": 148
"order": 157
},
{
"id": "poi_cemetery",
@ -253,7 +253,7 @@
"cemetery"
]
],
"order": 149
"order": 158
},
{
"id": "poi_school",
@ -312,7 +312,7 @@
"school"
]
],
"order": 150
"order": 159
},
{
"id": "poi_outdoor",
@ -367,7 +367,7 @@
"gate"
]
],
"order": 151
"order": 160
},
{
"id": "poi_parking",
@ -433,7 +433,7 @@
"parking"
]
],
"order": 152
"order": 161
},
{
"id": "poi_golf",
@ -488,7 +488,7 @@
"golf"
]
],
"order": 153
"order": 162
},
{
"id": "poi_sport",
@ -544,7 +544,7 @@
"water_park"
]
],
"order": 154
"order": 163
},
{
"id": "poi_ferry",
@ -604,7 +604,7 @@
"ferry_terminal"
]
],
"order": 155
"order": 164
},
{
"id": "poi_food",
@ -664,7 +664,7 @@
"restaurant"
]
],
"order": 156
"order": 165
},
{
"id": "poi_water",
@ -719,7 +719,7 @@
"ice_rink"
]
],
"order": 157
"order": 166
},
{
"id": "poi_public",
@ -786,7 +786,7 @@
"books"
]
],
"order": 158
"order": 167
},
{
"id": "poi_cultural",
@ -855,7 +855,7 @@
"gallery"
]
],
"order": 159
"order": 168
},
{
"id": "poi_attraction",
@ -910,7 +910,7 @@
"attraction"
]
],
"order": 160
"order": 169
},
{
"id": "poi_car",
@ -979,7 +979,7 @@
"fuel"
]
],
"order": 161
"order": 170
},
{
"id": "poi_health",
@ -1037,7 +1037,7 @@
"veterinary"
]
],
"order": 162
"order": 171
},
{
"id": "poi_hospital",
@ -1103,7 +1103,7 @@
"hospital"
]
],
"order": 163
"order": 172
},
{
"id": "poi_campsite",
@ -1158,7 +1158,7 @@
"campsite"
]
],
"order": 164
"order": 173
},
{
"id": "poi_accommodation",
@ -1225,7 +1225,7 @@
"campsite"
]
],
"order": 165
"order": 174
},
{
"id": "poi_place_of_worship",
@ -1289,7 +1289,7 @@
"place_of_worship"
]
],
"order": 166
"order": 175
},
{
"id": "poi_busstop",
@ -1350,7 +1350,7 @@
"bus"
]
],
"order": 167
"order": 176
},
{
"id": "poi_bus",
@ -1410,7 +1410,7 @@
"bus_stop"
]
],
"order": 168
"order": 177
},
{
"id": "poi_harbor",
@ -1460,7 +1460,7 @@
"harbor"
]
],
"order": 169
"order": 178
},
{
"id": "poi_mall",
@ -1519,7 +1519,7 @@
"mall"
]
],
"order": 170
"order": 179
},
{
"id": "poi_train",
@ -1578,7 +1578,7 @@
"railway"
]
],
"order": 171
"order": 180
},
{
"id": "park-local",
@ -1638,7 +1638,7 @@
"park"
]
],
"order": 185
"order": 194
},
{
"id": "poi_zoo",
@ -1698,7 +1698,7 @@
"zoo"
]
],
"order": 187
"order": 196
}
]
}

Plik binarny nie jest wyświetlany.

Przed

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

Po

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

Wyświetl plik

@ -15,12 +15,23 @@ $$
WHEN undefined_object THEN
CREATE TYPE route_network_type AS enum (
'us-interstate', 'us-highway', 'us-state',
'ca-transcanada',
'gb-motorway', 'gb-trunk'
'ca-transcanada', 'ca-provincial-arterial', 'ca-provincial',
'gb-motorway', 'gb-trunk', 'gb-primary'
);
END
$$;
-- Top-level national route networks that should display at the lowest zooms
CREATE OR REPLACE FUNCTION osm_national_network(network text) RETURNS boolean AS
$$
SELECT network <> '' AND network IN (
-- Canada
'ca-transcanada', 'ca-provincial-arterial',
-- United States
'us-interstate');
$$ LANGUAGE sql IMMUTABLE
PARALLEL SAFE;
DO
$$
BEGIN

Wyświetl plik

@ -1,28 +1,32 @@
CREATE TABLE IF NOT EXISTS ne_10m_admin_0_bg_buffer AS
CREATE TABLE IF NOT EXISTS ne_10m_admin_0_gb_buffer AS
SELECT ST_Buffer(geometry, 10000)
FROM ne_10m_admin_0_countries
WHERE iso_a2 = 'GB';
-- etldoc: osm_route_member -> gbr_route_members_view
CREATE OR REPLACE VIEW gbr_route_members_view AS
SELECT 0,
osm_id,
substring(ref FROM E'^[AM][0-9AM()]+'),
CASE WHEN highway = 'motorway' THEN 'omt-gb-motorway' ELSE 'omt-gb-trunk' END
substring(ref FROM E'^[ABM][0-9ABM()]+'),
-- See https://wiki.openstreetmap.org/wiki/Roads_in_the_United_Kingdom
CASE WHEN highway = 'motorway' THEN 'omt-gb-motorway'
WHEN highway = 'trunk' THEN 'omt-gb-trunk'
WHEN highway IN ('primary','secondary') THEN 'omt-gb-primary' END AS network
FROM osm_highway_linestring
WHERE length(ref) > 0
AND ST_Intersects(geometry, (SELECT * FROM ne_10m_admin_0_bg_buffer))
AND highway IN ('motorway', 'trunk')
WHERE length(ref) > 1
AND ST_Intersects(geometry, (SELECT * FROM ne_10m_admin_0_gb_buffer))
AND highway IN ('motorway', 'trunk', 'primary', 'secondary')
;
-- Create GBR relations (so we can use it in the same way as other relations)
DELETE
FROM osm_route_member
WHERE network IN ('omt-gb-motorway', 'omt-gb-trunk');
-- etldoc: osm_highway_linestring -> osm_route_member
WHERE network IN ('omt-gb-motorway', 'omt-gb-trunk', 'omt-gb-primary');
-- etldoc: gbr_route_members_view -> osm_route_member
INSERT INTO osm_route_member (osm_id, member, ref, network)
SELECT *
FROM gbr_route_members_view;
CREATE OR REPLACE FUNCTION osm_route_member_network_type(network text) RETURNS route_network_type AS
CREATE OR REPLACE FUNCTION osm_route_member_network_type(network text, ref text) RETURNS route_network_type AS
$$
SELECT CASE
WHEN network = 'US:I' THEN 'us-interstate'::route_network_type
@ -30,8 +34,20 @@ SELECT CASE
WHEN network LIKE 'US:__' THEN 'us-state'::route_network_type
-- https://en.wikipedia.org/wiki/Trans-Canada_Highway
WHEN network LIKE 'CA:transcanada%' THEN 'ca-transcanada'::route_network_type
WHEN network = 'CA:QC:A' THEN 'ca-provincial-arterial'::route_network_type
WHEN network = 'CA:ON:primary' THEN
CASE
WHEN ref LIKE '4__' THEN 'ca-provincial-arterial'::route_network_type
WHEN ref = 'QEW' THEN 'ca-provincial-arterial'::route_network_type
ELSE 'ca-provincial-arterial'::route_network_type
END
WHEN network = 'CA:MB:PTH' AND ref = '75' THEN 'ca-provincial-arterial'::route_network_type
WHEN network = 'CA:AB:primary' AND ref IN ('2','3','4') THEN 'ca-provincial-arterial'::route_network_type
WHEN network = 'CA:BC' AND ref IN ('3','5','99') THEN 'ca-provincial-arterial'::route_network_type
WHEN network LIKE 'CA:__' OR network LIKE 'CA:__:%' THEN 'ca-provincial'::route_network_type
WHEN network = 'omt-gb-motorway' THEN 'gb-motorway'::route_network_type
WHEN network = 'omt-gb-trunk' THEN 'gb-trunk'::route_network_type
WHEN network = 'omt-gb-primary' THEN 'gb-primary'::route_network_type
END;
$$ LANGUAGE sql IMMUTABLE
PARALLEL SAFE;
@ -39,9 +55,9 @@ $$ LANGUAGE sql IMMUTABLE
-- etldoc: osm_route_member -> osm_route_member
-- see http://wiki.openstreetmap.org/wiki/Relation:route#Road_routes
UPDATE osm_route_member
SET network_type = osm_route_member_network_type(network)
SET network_type = osm_route_member_network_type(network, ref)
WHERE network != ''
AND network_type IS DISTINCT FROM osm_route_member_network_type(network)
AND network_type IS DISTINCT FROM osm_route_member_network_type(network, ref)
;
CREATE OR REPLACE FUNCTION update_osm_route_member() RETURNS void AS
@ -51,7 +67,7 @@ BEGIN
FROM osm_route_member AS r
USING
transportation_name.network_changes AS c
WHERE network IN ('omt-gb-motorway', 'omt-gb-trunk')
WHERE network IN ('omt-gb-motorway', 'omt-gb-trunk', 'omt-gb-primary')
AND r.osm_id = c.osm_id;
INSERT INTO osm_route_member (osm_id, member, ref, network)
@ -64,7 +80,7 @@ BEGIN
SELECT
id,
osm_id,
osm_route_member_network_type(network) AS network_type,
osm_route_member_network_type(network, ref) AS network_type,
DENSE_RANK() over (PARTITION BY member ORDER BY network_type, network, LENGTH(ref), ref) AS concurrency_index,
CASE
WHEN network IN ('iwn', 'nwn', 'rwn') THEN 1
@ -80,7 +96,7 @@ BEGIN
END;
$$ LANGUAGE plpgsql;
CREATE INDEX IF NOT EXISTS osm_route_member_network_idx ON osm_route_member ("network");
CREATE INDEX IF NOT EXISTS osm_route_member_network_idx ON osm_route_member ("network", "ref");
CREATE INDEX IF NOT EXISTS osm_route_member_member_idx ON osm_route_member ("member");
CREATE INDEX IF NOT EXISTS osm_route_member_name_idx ON osm_route_member ("name");
CREATE INDEX IF NOT EXISTS osm_route_member_ref_idx ON osm_route_member ("ref");

Wyświetl plik

@ -331,9 +331,7 @@ BEGIN
(highway = 'motorway'
OR construction = 'motorway'
-- Allow trunk roads that are part of a nation's most important route network to show at z4
OR highway = 'trunk' AND
network <> '' AND
network IN ('ca-transcanada','us-interstate')
OR (highway = 'trunk' AND osm_national_network(network))
) AND
ST_Length(geometry) > 500;
@ -356,8 +354,8 @@ BEGIN
FROM osm_transportation_merge_linestring_gen_z5
WHERE
(update_id IS NULL OR id = update_id) AND
osm_national_network(network) AND
-- Current view: national-importance motorways and trunks
network IN ('ca-transcanada','us-interstate') AND
ST_Length(geometry) > 1000;
END;
$$ LANGUAGE plpgsql;

Wyświetl plik

@ -34,7 +34,7 @@
"ferry"
]
],
"order": 175
"order": 184
},
{
"id": "road_label",
@ -81,7 +81,7 @@
"ferry"
]
],
"order": 176
"order": 185
},
{
"id": "highway-shield-tertiary",
@ -160,7 +160,7 @@
"ref"
]
],
"order": 177
"order": 186
},
{
"id": "highway-shield-secondary",
@ -239,7 +239,7 @@
"ref"
]
],
"order": 178
"order": 187
},
{
"id": "highway-shield-primary",
@ -318,7 +318,7 @@
"ref"
]
],
"order": 179
"order": 188
},
{
"id": "highway-shield-motorway",
@ -400,7 +400,7 @@
"ref"
]
],
"order": 180
"order": 189
}
]
}

Wyświetl plik

@ -28,8 +28,11 @@ layer:
- us-highway
- us-state
- ca-transcanada
- ca-provincial-arterial
- ca-provincial
- gb-motorway
- gb-trunk
- gb-primary
- road (default)
class:
description: |

Wyświetl plik

@ -66,6 +66,9 @@ tables:
type: string
- name: tags
type: hstore_tags
- name: place
key: place
type: string
- name: natural
key: natural
type: string
@ -104,4 +107,7 @@ tables:
- dock
water:
- river
- pond
- basin
- wastewater
type: polygon

Plik binarny nie jest wyświetlany.

Przed

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

Po

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

Wyświetl plik

@ -26,7 +26,8 @@ layer:
description: |
All water polygons from [OpenStreetMapData](http://osmdata.openstreetmap.de/) have the class `ocean`.
Water bodies with the [`water=river`](http://wiki.openstreetmap.org/wiki/Tag:water=river) tag are classified as river. Wet and dry docks
tagged [`waterway=dock`](http://wiki.openstreetmap.org/wiki/Tag:waterway=dock) are classified as a `dock`.
tagged [`waterway=dock`](http://wiki.openstreetmap.org/wiki/Tag:waterway=dock) are classified as a `dock`.
Various minor waterbodies are classified as a `pond`.
Swimming pools tagged [`leisure=swimming_pool`](https://wiki.openstreetmap.org/wiki/Tag:leisure=swimming_pool) are classified as a `swimming_pool`
All other water bodies are classified as `lake`.
values:
@ -34,6 +35,8 @@ layer:
waterway: 'dock'
river:
water: 'river'
pond:
water: ['pond', 'basin', 'wastewater']
lake:
ocean:
swimming_pool:

Plik binarny nie jest wyświetlany.

Przed

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

Po

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

Wyświetl plik

@ -21,6 +21,9 @@ tables:
- name: place
key: place
type: string
- name: natural
key: natural
type: string
- name: rank
key: rank
type: integer
@ -34,3 +37,6 @@ tables:
place:
- ocean
- sea
natural:
- bay
- strait

Plik binarny nie jest wyświetlany.

Przed

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

Po

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

Wyświetl plik

@ -31,7 +31,7 @@
"LineString"
]
],
"order": 143
"order": 152
},
{
"id": "water_name_point",
@ -68,7 +68,7 @@
"ocean"
]
],
"order": 144
"order": 153
}
]
}

Wyświetl plik

@ -2,14 +2,22 @@ DROP TRIGGER IF EXISTS trigger_delete_point ON osm_water_polygon;
DROP TRIGGER IF EXISTS trigger_update_point ON osm_water_polygon;
DROP TRIGGER IF EXISTS trigger_insert_point ON osm_water_polygon;
-- etldoc: osm_water_polygon -> osm_water_point_view
-- etldoc: lake_centerline -> osm_water_point_view
CREATE OR REPLACE VIEW osm_water_point_view AS
SELECT wp.osm_id,
ST_PointOnSurface(wp.geometry) AS geometry,
wp.name,
wp.name_en,
wp.name_de,
CASE
WHEN "natural" = 'bay' THEN 'bay'
WHEN place = 'sea' THEN 'sea'
ELSE 'lake'
END AS class,
update_tags(wp.tags, ST_PointOnSurface(wp.geometry)) AS tags,
ST_Area(wp.geometry) AS area,
-- Area of the feature in square meters
ST_Area(wp.geometry) as area,
wp.is_intermittent
FROM osm_water_polygon AS wp
LEFT JOIN lake_centerline ll ON wp.osm_id = ll.osm_id
@ -17,11 +25,25 @@ WHERE ll.osm_id IS NULL
AND wp.name <> ''
AND ST_IsValid(wp.geometry);
-- etldoc: osm_water_polygon -> osm_water_point
-- etldoc: lake_centerline -> osm_water_point
-- etldoc: osm_water_point_view -> osm_water_point_earth_view
CREATE OR REPLACE VIEW osm_water_point_earth_view AS
SELECT osm_id,
geometry,
name,
name_en,
name_de,
class,
tags,
-- Percentage of the earth's surface covered by this feature (approximately)
-- The constant below is 111,842^2 * 180 * 180, where 111,842 is the length of one degree of latitude at the equator in meters.
area / (405279708033600 * COS(ST_Y(ST_Transform(geometry,4326))*PI()/180)) as earth_area,
is_intermittent
FROM osm_water_point_view;
-- etldoc: osm_water_point_earth_view -> osm_water_point
CREATE TABLE IF NOT EXISTS osm_water_point AS
SELECT *
FROM osm_water_point_view;
FROM osm_water_point_earth_view;
DO
$$
BEGIN

Wyświetl plik

@ -46,12 +46,14 @@ SELECT
COALESCE(NULLIF(name_en, ''), name) AS name_en,
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
tags,
'lake'::text AS class,
class,
is_intermittent::int AS intermittent
FROM osm_water_point
WHERE geometry && bbox
AND (
(zoom_level BETWEEN 9 AND 13 AND area > 70000 * 2 ^ (20 - zoom_level))
-- Show a label if a water feature covers at least 1/4 of a tile or z14+
(tags->'place' IN ('sea', 'ocean') AND POWER(4,zoom_level) * earth_area > 0.25)
OR (zoom_level BETWEEN 3 AND 13 AND POWER(4,zoom_level) * earth_area > 0.25)
OR (zoom_level >= 14)
)
UNION ALL
@ -65,15 +67,15 @@ SELECT
COALESCE(NULLIF(name_en, ''), name) AS name_en,
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
tags,
place::text AS class,
COALESCE(NULLIF("natural",''), "place") AS class,
is_intermittent::int AS intermittent
FROM osm_marine_point
WHERE geometry && bbox
AND (
place = 'ocean'
OR (zoom_level >= "rank" AND "rank" IS NOT NULL)
OR (zoom_level >= 8)
);
AND CASE
WHEN place = 'ocean' THEN TRUE
WHEN zoom_level >= "rank" AND "rank" IS NOT NULL THEN TRUE
WHEN "natural" = 'bay' THEN zoom_level >= 13
ELSE zoom_level >= 8 END;
$$ LANGUAGE SQL STABLE
-- STRICT
PARALLEL SAFE;

Wyświetl plik

@ -14,9 +14,11 @@ layer:
name_de: German name `name:de` if available, otherwise `name` or `name:en`.
class:
description: |
Distinguish between `lake`, `ocean` and `sea`.
Distinguish between `lake`, `ocean`, `bay`, `strait`, and `sea`.
values:
- lake
- bay
- strait
- sea
- ocean
intermittent:

Wyświetl plik

@ -282,7 +282,7 @@
"bridge"
]
],
"order": 103
"order": 111
},
{
"id": "waterway-bridge",
@ -322,7 +322,7 @@
"bridge"
]
],
"order": 104
"order": 112
},
{
"id": "water_way_name",
@ -367,7 +367,7 @@
"LineString"
]
],
"order": 142
"order": 151
}
]
}

Wyświetl plik

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 921 B

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 921 B