minor tweaks to obs_getmeasuremeta and obs_getmeasuredata, good behavior for geometryscores even when null is passed as desired_num_geoms
This commit is contained in:
@@ -338,9 +338,9 @@ $$ LANGUAGE plpgsql;
|
|||||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetMeasureMeta(
|
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetMeasureMeta(
|
||||||
geom geometry(Geometry, 4326),
|
geom geometry(Geometry, 4326),
|
||||||
measure_id TEXT,
|
measure_id TEXT,
|
||||||
normalize TEXT DEFAULT NULL,
|
|
||||||
boundary_id TEXT DEFAULT NULL,
|
boundary_id TEXT DEFAULT NULL,
|
||||||
time_span TEXT DEFAULT NULL
|
time_span TEXT DEFAULT NULL,
|
||||||
|
target_geoms INTEGER DEFAULT NULL
|
||||||
)
|
)
|
||||||
RETURNS TABLE (
|
RETURNS TABLE (
|
||||||
numer_aggregate VARCHAR,
|
numer_aggregate VARCHAR,
|
||||||
@@ -373,7 +373,7 @@ BEGIN
|
|||||||
AND (numer_timespan = $3 OR ($3 = ''))),
|
AND (numer_timespan = $3 OR ($3 = ''))),
|
||||||
scores AS (SELECT *
|
scores AS (SELECT *
|
||||||
FROM cdb_observatory._OBS_GetGeometryScores($4,
|
FROM cdb_observatory._OBS_GetGeometryScores($4,
|
||||||
(SELECT Array_Agg(geom_id) FROM meta), 500))
|
(SELECT Array_Agg(geom_id) FROM meta), $5))
|
||||||
SELECT meta.*
|
SELECT meta.*
|
||||||
FROM meta, scores
|
FROM meta, scores
|
||||||
WHERE meta.geom_id = scores.geom_id
|
WHERE meta.geom_id = scores.geom_id
|
||||||
@@ -383,7 +383,7 @@ BEGIN
|
|||||||
CASE WHEN ST_GeometryType(geom) = 'ST_Point' THEN
|
CASE WHEN ST_GeometryType(geom) = 'ST_Point' THEN
|
||||||
ST_Buffer(geom::geography, 200)::geometry(geometry, 4326)
|
ST_Buffer(geom::geography, 200)::geometry(geometry, 4326)
|
||||||
ELSE geom
|
ELSE geom
|
||||||
END;
|
END, target_geoms;
|
||||||
RETURN;
|
RETURN;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE plpgsql IMMUTABLE;
|
$$ LANGUAGE plpgsql IMMUTABLE;
|
||||||
@@ -578,8 +578,8 @@ BEGIN
|
|||||||
ST_GeometryType(geom);
|
ST_GeometryType(geom);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
SELECT * FROM cdb_observatory.OBS_GetMeasureMeta(geom, measure_id, normalize,
|
SELECT * FROM cdb_observatory.OBS_GetMeasureMeta(geom, measure_id,
|
||||||
boundary_id, time_span)
|
boundary_id, time_span, 500)
|
||||||
INTO numer_aggregate, numer_colname, numer_geomref_colname, numer_tablename,
|
INTO numer_aggregate, numer_colname, numer_geomref_colname, numer_tablename,
|
||||||
denom_colname, denom_geomref_colname, denom_tablename,
|
denom_colname, denom_geomref_colname, denom_tablename,
|
||||||
geom_colname, geom_geomref_colname, geom_tablename, numer_name,
|
geom_colname, geom_geomref_colname, geom_tablename, numer_name,
|
||||||
|
|||||||
@@ -416,7 +416,7 @@ $$ LANGUAGE plpgsql;
|
|||||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetGeometryScores(
|
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetGeometryScores(
|
||||||
bounds Geometry(Geometry, 4326) DEFAULT NULL,
|
bounds Geometry(Geometry, 4326) DEFAULT NULL,
|
||||||
filter_geom_ids TEXT[] DEFAULT NULL,
|
filter_geom_ids TEXT[] DEFAULT NULL,
|
||||||
desired_num_geoms INTEGER DEFAULT 3000
|
desired_num_geoms INTEGER DEFAULT NULL
|
||||||
) RETURNS TABLE (
|
) RETURNS TABLE (
|
||||||
score NUMERIC,
|
score NUMERIC,
|
||||||
numtiles BIGINT,
|
numtiles BIGINT,
|
||||||
@@ -428,6 +428,9 @@ CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetGeometryScores(
|
|||||||
meanmediansize NUMERIC
|
meanmediansize NUMERIC
|
||||||
) AS $$
|
) AS $$
|
||||||
BEGIN
|
BEGIN
|
||||||
|
IF desired_num_geoms IS NULL THEN
|
||||||
|
desired_num_geoms := 3000;
|
||||||
|
END IF;
|
||||||
filter_geom_ids := COALESCE(filter_geom_ids, (ARRAY[])::TEXT[]);
|
filter_geom_ids := COALESCE(filter_geom_ids, (ARRAY[])::TEXT[]);
|
||||||
-- Very complex geometries simply fail. For a boundary check, we can
|
-- Very complex geometries simply fail. For a boundary check, we can
|
||||||
-- comfortably get away with the simplicity of an envelope
|
-- comfortably get away with the simplicity of an envelope
|
||||||
|
|||||||
Reference in New Issue
Block a user