handle cases with mixed geometries in obs_getdata correctly

This commit is contained in:
John Krauss 2017-01-17 22:49:04 +00:00
parent fa82c1bb4f
commit c18f16ed6d

View File

@ -563,7 +563,8 @@ BEGIN
' THEN 1 ' || ' THEN 1 ' ||
' ELSE (ST_Area(ST_Intersection(_geoms.geom, ' || geom_tablename || '.' || geom_colname || ')) ' || ' ELSE (ST_Area(ST_Intersection(_geoms.geom, ' || geom_tablename || '.' || geom_colname || ')) ' ||
' / ST_Area(' || geom_tablename || '.' || geom_colname || '))' || ' / ST_Area(' || geom_tablename || '.' || geom_colname || '))' ||
' END), 0) ' ' END), 0) ' ||
' / (COUNT(*) / COUNT(distinct ' || geom_tablename || '.' || geom_geomref_colname || ')) ' ||
' END ' ' END '
-- areaNormalized -- areaNormalized
WHEN LOWER(normalization) LIKE 'area%' OR (normalization IS NULL AND numer_aggregate ILIKE 'sum') WHEN LOWER(normalization) LIKE 'area%' OR (normalization IS NULL AND numer_aggregate ILIKE 'sum')
@ -584,7 +585,9 @@ BEGIN
' / ST_Area(_geoms.geom)' || ' / ST_Area(_geoms.geom)' ||
' ELSE (ST_Area(ST_Intersection(_geoms.geom, ' || geom_tablename || '.' || geom_colname || ')) ' || ' ELSE (ST_Area(ST_Intersection(_geoms.geom, ' || geom_tablename || '.' || geom_colname || ')) ' ||
' / ST_Area(_geoms.geom))' || ' / ST_Area(_geoms.geom))' ||
' END / (ST_Area(' || geom_tablename || '.' || geom_colname || '::Geography) / 1000000)) END ' ' END / (ST_Area(' || geom_tablename || '.' || geom_colname || '::Geography) / 1000000)) ' ||
' / (COUNT(*) / COUNT(distinct ' || geom_tablename || '.' || geom_geomref_colname || ')) ' ||
' END '
-- prenormalized -- prenormalized
ELSE ' CASE ' || ELSE ' CASE ' ||
-- predenominated point-in-poly or user polygon is the same as OBS- polygon -- predenominated point-in-poly or user polygon is the same as OBS- polygon
@ -602,7 +605,9 @@ BEGIN
' THEN 1 ' || ' THEN 1 ' ||
' ELSE (ST_Area(ST_Intersection(_geoms.geom, ' || geom_tablename || '.' || geom_colname || ')) ' || ' ELSE (ST_Area(ST_Intersection(_geoms.geom, ' || geom_tablename || '.' || geom_colname || ')) ' ||
' / ST_Area(' || geom_tablename || '.' || geom_colname || '))' || ' / ST_Area(' || geom_tablename || '.' || geom_colname || '))' ||
' END) END ' ' END) ' ||
' / (COUNT(*) / COUNT(distinct ' || geom_tablename || '.' || geom_geomref_colname || ')) ' ||
'END '
END || ':: ' || numer_type END || ':: ' || numer_type
-- categorical/text -- categorical/text