kopia lustrzana https://github.com/openmaptiles/openmaptiles
Micro SQL improvement of building layer (#755)
Thank you @frodrigo for this improvement.pull/765/head^2
rodzic
cb2cc09d20
commit
86a6f93b29
|
|
@ -14,7 +14,7 @@ $$ STRICT
|
||||||
LANGUAGE plpgsql IMMUTABLE;
|
LANGUAGE plpgsql IMMUTABLE;
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS osm_building_relation_building_idx ON osm_building_relation(building) WHERE building = '' AND ST_GeometryType(geometry) = 'ST_Polygon';
|
CREATE INDEX IF NOT EXISTS osm_building_relation_building_idx ON osm_building_relation(building) WHERE building = '' AND ST_GeometryType(geometry) = 'ST_Polygon';
|
||||||
CREATE INDEX IF NOT EXISTS osm_building_relation_member_idx ON osm_building_relation(member);
|
CREATE INDEX IF NOT EXISTS osm_building_relation_member_idx ON osm_building_relation(member) WHERE role = 'outline';
|
||||||
--CREATE INDEX IF NOT EXISTS osm_building_associatedstreet_role_idx ON osm_building_associatedstreet(role) WHERE ST_GeometryType(geometry) = 'ST_Polygon';
|
--CREATE INDEX IF NOT EXISTS osm_building_associatedstreet_role_idx ON osm_building_associatedstreet(role) WHERE ST_GeometryType(geometry) = 'ST_Polygon';
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW osm_all_buildings AS (
|
CREATE OR REPLACE VIEW osm_all_buildings AS (
|
||||||
|
|
@ -71,10 +71,10 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
||||||
COALESCE(nullif(as_numeric(obp.min_level),-1),nullif(as_numeric(obp.buildingmin_level),-1)) as min_level,
|
COALESCE(nullif(as_numeric(obp.min_level),-1),nullif(as_numeric(obp.buildingmin_level),-1)) as min_level,
|
||||||
nullif(obp.material, '') AS material,
|
nullif(obp.material, '') AS material,
|
||||||
nullif(obp.colour, '') AS colour,
|
nullif(obp.colour, '') AS colour,
|
||||||
CASE WHEN obr.role='outline' THEN TRUE ELSE FALSE END 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)
|
LEFT JOIN osm_building_relation obr ON obr.member = obp.osm_id AND obr.role = 'outline'
|
||||||
-- Only check for ST_Polygon as we exclude buildings from relations keeping only positive ids
|
-- Only check for ST_Polygon as we exclude buildings from relations keeping only positive ids
|
||||||
WHERE obp.osm_id >= 0 AND ST_GeometryType(obp.geometry) = 'ST_Polygon'
|
WHERE obp.osm_id >= 0 AND ST_GeometryType(obp.geometry) = 'ST_Polygon'
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue