kopia lustrzana https://github.com/osm2vectortiles/osm2vectortiles
Merge pull request #297 from osm2vectortiles/feature/cluster-road
Combine small road, landuse geometries to bigger multi-geometriespull/298/head
commit
25ea0084fd
|
@ -28,12 +28,14 @@ Layer:
|
|||
srid: ''
|
||||
table: |-
|
||||
(
|
||||
SELECT osm_ids2mbid(MAX(osm_id), true) AS osm_id, ST_CollectionExtract(ST_Collect(geometry), 3) AS geometry, landuse_class(type) AS class, type
|
||||
FROM landuse_z5toz8
|
||||
WHERE z(!scale_denominator!) BETWEEN 5 AND 8
|
||||
AND geometry && !bbox!
|
||||
GROUP BY type
|
||||
UNION ALL
|
||||
SELECT osm_ids2mbid(osm_id, true) as osm_id, geometry, landuse_class(type) as class, type
|
||||
FROM (
|
||||
SELECT osm_id, geometry, type
|
||||
FROM landuse_z5toz8
|
||||
WHERE z(!scale_denominator!) BETWEEN 5 AND 8
|
||||
UNION ALL
|
||||
SELECT osm_id, geometry, type
|
||||
FROM landuse_z9
|
||||
WHERE z(!scale_denominator!) = 9
|
||||
|
@ -237,7 +239,7 @@ Layer:
|
|||
srid: ''
|
||||
table: |-
|
||||
(
|
||||
SELECT osm_ids2mbid(osm_id, true) as osm_id, geometry, building_is_underground(underground) AS underground
|
||||
SELECT osm_ids2mbid(osm_id, true) AS osm_id, geometry, building_is_underground(underground) AS underground
|
||||
FROM (
|
||||
SELECT osm_id, geometry, underground
|
||||
FROM building_z13
|
||||
|
@ -325,36 +327,45 @@ Layer:
|
|||
srid: ''
|
||||
table: |-
|
||||
(
|
||||
SELECT osm_ids2mbid(osm_id, is_polygon(geometry)) as osm_id, geometry,
|
||||
road_type(road_class(type, service, access), type, construction, tracktype, service) AS type,
|
||||
road_class(type, service, access) AS class, road_oneway(oneway) AS oneway, structure
|
||||
FROM (
|
||||
SELECT * FROM road_z5
|
||||
WHERE z(!scale_denominator!) = 5
|
||||
UNION ALL
|
||||
SELECT * FROM road_z6toz7
|
||||
WHERE z(!scale_denominator!) BETWEEN 6 AND 7
|
||||
UNION ALL
|
||||
SELECT * FROM road_z8toz9
|
||||
WHERE z(!scale_denominator!) BETWEEN 8 AND 9
|
||||
UNION ALL
|
||||
SELECT * FROM road_z10
|
||||
WHERE z(!scale_denominator!) = 10
|
||||
UNION ALL
|
||||
SELECT * FROM road_z11
|
||||
WHERE z(!scale_denominator!) = 11
|
||||
UNION ALL
|
||||
SELECT * FROM road_z12
|
||||
WHERE z(!scale_denominator!) = 12
|
||||
UNION ALL
|
||||
SELECT * FROM road_z13
|
||||
WHERE z(!scale_denominator!) = 13
|
||||
UNION ALL
|
||||
SELECT * FROM road_z14
|
||||
WHERE z(!scale_denominator!) = 14
|
||||
) AS road
|
||||
WHERE geometry && !bbox!
|
||||
ORDER BY z_order ASC
|
||||
SELECT osm_id, geometry, type, class, oneway, structure FROM (
|
||||
SELECT osm_ids2mbid(MAX(osm_id), false) AS osm_id, ST_CollectionExtract(ST_Collect(geometry), 2) AS geometry,
|
||||
road_type(road_class(type, NULL, NULL), type, NULL, NULL, NULL) AS type,
|
||||
road_class(type, NULL, NULL) AS class, road_oneway(0) AS oneway, 'none' AS structure, NULL AS z_order
|
||||
FROM (
|
||||
SELECT * FROM road_z5
|
||||
WHERE z(!scale_denominator!) = 5
|
||||
UNION ALL
|
||||
SELECT * FROM road_z6toz7
|
||||
WHERE z(!scale_denominator!) BETWEEN 6 AND 7
|
||||
UNION ALL
|
||||
SELECT * FROM road_z8toz9
|
||||
WHERE z(!scale_denominator!) BETWEEN 8 AND 9
|
||||
UNION ALL
|
||||
SELECT * FROM road_z10
|
||||
WHERE z(!scale_denominator!) = 10
|
||||
) AS road_grouped_zoom_levels
|
||||
WHERE geometry && !bbox!
|
||||
GROUP BY type
|
||||
UNION ALL
|
||||
SELECT osm_ids2mbid(osm_id, is_polygon(geometry)) AS osm_id, geometry,
|
||||
road_type(road_class(type, service, access), type, construction, tracktype, service) AS type,
|
||||
road_class(type, service, access) AS class, road_oneway(oneway) AS oneway, structure, z_order
|
||||
FROM (
|
||||
SELECT * FROM road_z11
|
||||
WHERE z(!scale_denominator!) = 11
|
||||
UNION ALL
|
||||
SELECT * FROM road_z12
|
||||
WHERE z(!scale_denominator!) = 12
|
||||
UNION ALL
|
||||
SELECT * FROM road_z13
|
||||
WHERE z(!scale_denominator!) = 13
|
||||
UNION ALL
|
||||
SELECT * FROM road_z14
|
||||
WHERE z(!scale_denominator!) = 14
|
||||
) AS t2
|
||||
WHERE geometry && !bbox!
|
||||
ORDER BY z_order ASC
|
||||
) AS ordered_roads
|
||||
) AS data
|
||||
type: postgis
|
||||
user: osm
|
||||
|
|
|
@ -41,9 +41,6 @@ function import_pbf() {
|
|||
echo "Update osm_place_polygon with point geometry"
|
||||
update_place_point
|
||||
|
||||
echo "Create osm_landuse_clustered table"
|
||||
create_osm_landuse_clustered_table
|
||||
|
||||
echo "Update scaleranks from Natural Earth data"
|
||||
update_scaleranks
|
||||
|
||||
|
@ -64,14 +61,14 @@ function update_scaleranks() {
|
|||
exec_sql_file "update_scaleranks.sql"
|
||||
}
|
||||
|
||||
function create_osm_landuse_clustered_table() {
|
||||
exec_sql_file "landuse_clustered_table.sql"
|
||||
}
|
||||
|
||||
function create_osm_water_point_table() {
|
||||
exec_sql_file "water_point_table.sql"
|
||||
}
|
||||
|
||||
function update_scaleranks() {
|
||||
exec_sql_file "update_scaleranks.sql"
|
||||
}
|
||||
|
||||
function create_timestamp_history() {
|
||||
exec_sql "DROP TABLE IF EXISTS $HISTORY_TABLE"
|
||||
exec_sql "CREATE TABLE $HISTORY_TABLE (timestamp timestamp)"
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
DROP TABLE IF EXISTS osm_landuse_clustered CASCADE;
|
||||
CREATE TABLE osm_landuse_clustered AS
|
||||
SELECT ST_CollectionExtract(unnest(ST_ClusterWithin(geometry, 5000)),3) AS geometry, type
|
||||
FROM osm_landuse_polygon_gen0
|
||||
WHERE type IN ('wood', 'forest')
|
||||
GROUP BY type;
|
||||
|
||||
CREATE INDEX ON osm_landuse_clustered USING gist (geometry);
|
||||
CREATE INDEX ON osm_landuse_clustered
|
||||
USING btree (st_geohash(st_transform(st_setsrid(box2d(geometry)::geometry, 3857), 4326)));
|
|
@ -1,6 +1,7 @@
|
|||
CREATE OR REPLACE VIEW landuse_z5toz8 AS
|
||||
SELECT 0 AS osm_id, geometry, type
|
||||
FROM osm_landuse_clustered;
|
||||
SELECT osm_id, geometry, type
|
||||
FROM osm_landuse_polygon_gen0
|
||||
WHERE type IN ('wood', 'forest');
|
||||
|
||||
CREATE OR REPLACE VIEW landuse_z9 AS
|
||||
SELECT *
|
||||
|
|
Ładowanie…
Reference in New Issue