Add tile layer for regions with event count
This commit is contained in:
parent
bea4174b37
commit
3a97b07325
26
tile-generator/layers/obs_regions/layer.sql
Normal file
26
tile-generator/layers/obs_regions/layer.sql
Normal file
|
@ -0,0 +1,26 @@
|
|||
DROP FUNCTION IF EXISTS layer_obs_regions(geometry, int);
|
||||
|
||||
CREATE OR REPLACE FUNCTION layer_obs_regions(bbox geometry, zoom_level int)
|
||||
RETURNS TABLE(
|
||||
region_id bigint,
|
||||
geometry geometry,
|
||||
name text,
|
||||
admin_level int,
|
||||
overtaking_event_count int
|
||||
) AS $$
|
||||
|
||||
SELECT
|
||||
region.relation_id::bigint as region_id,
|
||||
ST_SimplifyPreserveTopology(region.geometry, ZRes(zoom_level + 2)) as geometry,
|
||||
region.name as name,
|
||||
region.admin_level as admin_level,
|
||||
count(overtaking_event.id)::int as overtaking_event_count
|
||||
FROM region
|
||||
LEFT JOIN overtaking_event on ST_Within(ST_Transform(overtaking_event.geometry, 3857), region.geometry)
|
||||
WHERE
|
||||
zoom_level >= 4 AND
|
||||
zoom_level <= 12 AND
|
||||
ST_Transform(region.geometry, 3857) && bbox
|
||||
GROUP BY region.relation_id, region.name, region.geometry, region.admin_level
|
||||
|
||||
$$ LANGUAGE SQL IMMUTABLE;
|
23
tile-generator/layers/obs_regions/obs_regions.yaml
Normal file
23
tile-generator/layers/obs_regions/obs_regions.yaml
Normal file
|
@ -0,0 +1,23 @@
|
|||
layer:
|
||||
id: "obs_regions"
|
||||
description: |
|
||||
Statistics on administrative boundary areas ("regions")
|
||||
buffer_size: 4
|
||||
fields:
|
||||
overtaking_event_count: |
|
||||
Number of overtaking events.
|
||||
name: |
|
||||
Name of the region
|
||||
admin_level: |
|
||||
Administrative level of the boundary, as tagged in OpenStreetMap
|
||||
defaults:
|
||||
srs: EPSG:3785
|
||||
datasource:
|
||||
srid: 3857
|
||||
geometry_field: geometry
|
||||
key_field: region_id
|
||||
key_field_as_attribute: no
|
||||
query: (SELECT region_id, geometry, name, admin_level, overtaking_event_count FROM layer_obs_regions(!bbox!, z(!scale_denominator!))) AS t
|
||||
|
||||
schema:
|
||||
- ./layer.sql
|
|
@ -3,6 +3,7 @@ tileset:
|
|||
layers:
|
||||
- layers/obs_events/obs_events.yaml
|
||||
- layers/obs_roads/obs_roads.yaml
|
||||
- layers/obs_regions/obs_regions.yaml
|
||||
version: 0.7.0
|
||||
id: openbikesensor
|
||||
description: >
|
||||
|
|
Loading…
Reference in a new issue