kopia lustrzana https://github.com/openmaptiles/openmaptiles
				
				
				
			Refactor urban into table function
							rodzic
							
								
									402242e2c4
								
							
						
					
					
						commit
						891b60b736
					
				
							
								
								
									
										17
									
								
								data.yml
								
								
								
								
							
							
						
						
									
										17
									
								
								data.yml
								
								
								
								
							|  | @ -135,21 +135,8 @@ Layer: | |||
|       max_size: 512 | ||||
|       password: osm | ||||
|       port: 5432 | ||||
|       srid: '' | ||||
|       table: |- | ||||
|         ( SELECT geom, scalerank | ||||
|           FROM ( | ||||
|               SELECT * FROM urban_z4 | ||||
|               WHERE z(!scale_denominator!) = 4 | ||||
|               UNION ALL | ||||
|               SELECT * FROM urban_z5 | ||||
|               WHERE z(!scale_denominator!) = 5 | ||||
|               UNION ALL | ||||
|               SELECT * FROM urban_z6 | ||||
|               WHERE z(!scale_denominator!) >= 6 AND scalerank-1 <= z(!scale_denominator!) | ||||
|           ) AS urban | ||||
|           WHERE geom && !bbox! | ||||
|         ) AS t | ||||
|       srid: 900913 | ||||
|       table: (SELECT * FROM layer_urban(!bbox!, z(!scale_denominator!))) AS t | ||||
|       type: postgis | ||||
|       user: osm | ||||
|     description: Buildings | ||||
|  |  | |||
|  | @ -13,3 +13,19 @@ CREATE OR REPLACE VIEW urban_z6 AS ( | |||
|     SELECT geom, scalerank | ||||
|     FROM ne_10m_urban_areas | ||||
| ); | ||||
| 
 | ||||
| CREATE OR REPLACE FUNCTION layer_urban(bbox geometry, zoom_level int) | ||||
| RETURNS TABLE(geom geometry, scalerank int) AS $$ | ||||
|     WITH zoom_levels AS ( | ||||
|         SELECT * FROM urban_z4 | ||||
|         WHERE zoom_level = 4 | ||||
|         UNION ALL | ||||
|         SELECT * FROM urban_z5 | ||||
|         WHERE zoom_level = 5 | ||||
|         UNION ALL | ||||
|         SELECT * FROM urban_z6 | ||||
|         WHERE zoom_level >= 6 AND scalerank-1 <= zoom_level | ||||
|     ) | ||||
|     SELECT geom, scalerank FROM zoom_levels | ||||
|     WHERE geom && bbox; | ||||
| $$ LANGUAGE SQL IMMUTABLE; | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 lukasmartinelli
						lukasmartinelli