Merge ways and relations fetch from table osm_building_polygon (#757)
Build on top of PR #755, to be merged first. Since we want every thing from osm_building_polygon (osm_id >= 0 and osm_id < 0), we can merge the two queries. Note: the obp.osm_id >= 0 on the left join only apply to the left join part.
This commit is contained in:
parent
5f277b5023
commit
99f9336e5e
@ -46,22 +46,6 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||||||
osm_building_associatedstreet WHERE role = 'house' AND ST_GeometryType(geometry) = 'ST_Polygon'
|
osm_building_associatedstreet WHERE role = 'house' AND ST_GeometryType(geometry) = 'ST_Polygon'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
||||||
-- etldoc: osm_building_polygon -> layer_building:z14_
|
|
||||||
-- Buildings that are from multipolygons
|
|
||||||
SELECT osm_id,geometry,
|
|
||||||
COALESCE(nullif(as_numeric(height),-1),nullif(as_numeric(buildingheight),-1)) as height,
|
|
||||||
COALESCE(nullif(as_numeric(min_height),-1),nullif(as_numeric(buildingmin_height),-1)) as min_height,
|
|
||||||
COALESCE(nullif(as_numeric(levels),-1),nullif(as_numeric(buildinglevels),-1)) as levels,
|
|
||||||
COALESCE(nullif(as_numeric(min_level),-1),nullif(as_numeric(buildingmin_level),-1)) as min_level,
|
|
||||||
nullif(material, '') AS material,
|
|
||||||
nullif(colour, '') AS colour,
|
|
||||||
FALSE as hide_3d
|
|
||||||
FROM
|
|
||||||
osm_building_polygon obp
|
|
||||||
-- OSM mulipolygons once imported can give unique postgis polygons with holes, or multi parts polygons
|
|
||||||
WHERE osm_id < 0 AND ST_GeometryType(geometry) IN ('ST_Polygon', 'ST_MultiPolygon')
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
-- etldoc: osm_building_polygon -> layer_building:z14_
|
-- etldoc: osm_building_polygon -> layer_building:z14_
|
||||||
-- Standalone buildings
|
-- Standalone buildings
|
||||||
SELECT obp.osm_id,obp.geometry,
|
SELECT obp.osm_id,obp.geometry,
|
||||||
@ -74,9 +58,11 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||||||
obr.role IS NOT NULL AS hide_3d
|
obr.role IS NOT NULL AS hide_3d
|
||||||
FROM
|
FROM
|
||||||
osm_building_polygon obp
|
osm_building_polygon obp
|
||||||
LEFT JOIN osm_building_relation obr ON obr.member = obp.osm_id AND obr.role = 'outline'
|
LEFT JOIN osm_building_relation obr ON
|
||||||
-- Only check for ST_Polygon as we exclude buildings from relations keeping only positive ids
|
obp.osm_id >= 0 AND
|
||||||
WHERE obp.osm_id >= 0 AND ST_GeometryType(obp.geometry) = 'ST_Polygon'
|
obr.member = obp.osm_id AND
|
||||||
|
obr.role = 'outline'
|
||||||
|
WHERE ST_GeometryType(obp.geometry) IN ('ST_Polygon', 'ST_MultiPolygon')
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION layer_building(bbox geometry, zoom_level int)
|
CREATE OR REPLACE FUNCTION layer_building(bbox geometry, zoom_level int)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user