Merge pull request #297 from osm2vectortiles/feature/cluster-road

Combine small road, landuse geometries to bigger multi-geometries
pull/298/head
Manuel Roth 2016-04-27 15:02:40 +02:00
commit 25ea0084fd
4 zmienionych plików z 53 dodań i 54 usunięć

Wyświetl plik

@ -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

Wyświetl plik

@ -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)"

Wyświetl plik

@ -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)));

Wyświetl plik

@ -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 *