From d44887b2b3c7e3698037f04b2c7d08c57bd28b45 Mon Sep 17 00:00:00 2001 From: John Krauss Date: Wed, 28 Dec 2016 16:19:13 +0000 Subject: [PATCH] subdivide complex geoms in obs_getmeasure --- src/pg/sql/41_observatory_augmentation.sql | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/pg/sql/41_observatory_augmentation.sql b/src/pg/sql/41_observatory_augmentation.sql index ac3472e..0a6a043 100644 --- a/src/pg/sql/41_observatory_augmentation.sql +++ b/src/pg/sql/41_observatory_augmentation.sql @@ -837,11 +837,19 @@ BEGIN USING (SELECT ARRAY(SELECT json_array_elements_text(params))::json[]); RETURN QUERY EXECUTE format($query$ - WITH _geoms AS (SELECT - (UNNEST($1)).val as id, - (UNNEST($1)).geom AS geom) + WITH _geoms AS ( + SELECT + (UNNEST($1)).val as id, + (UNNEST($1)).geom AS geom + ), _simple_geoms AS ( + SELECT id, + CASE WHEN ST_GeometryType(geom) = 'ST_Point' THEN geom + ELSE ST_Subdivide(geom) + END AS geom + FROM _geoms + ) SELECT _geoms.id::INT, %s - FROM %s, _geoms + FROM %s, _simple_geoms _geoms WHERE %s AND %s GROUP BY _geoms.id