Merge pull request #313 from CartoDB/add_numgeoms_getavailablegeometries
OBS_GetAvailableGeometries now receives number of geometries from input
This commit is contained in:
commit
b62e3ea963
@ -228,7 +228,7 @@ SELECT * FROM cdb_observatory.OBS_GetAvailableDenominators(
|
|||||||
WHERE valid_timespan IS True;
|
WHERE valid_timespan IS True;
|
||||||
```
|
```
|
||||||
|
|
||||||
## OBS_GetAvailableGeometries(bounds, filter_tags, numer_id, denom_id, timespan)
|
## OBS_GetAvailableGeometries(bounds, filter_tags, numer_id, denom_id, timespan, number_geometries)
|
||||||
|
|
||||||
Return available geometries within a boundary and with the specified
|
Return available geometries within a boundary and with the specified
|
||||||
`filter_tags`.
|
`filter_tags`.
|
||||||
@ -242,6 +242,7 @@ filter_tags | Text[] | a list of filters. Only geometries for which all of thes
|
|||||||
numer_id | Text | the ID of a numerator to check whether the geometry is valid against. Will not reduce length of returned table, but will change values for `valid_numer` (optional)
|
numer_id | Text | the ID of a numerator to check whether the geometry is valid against. Will not reduce length of returned table, but will change values for `valid_numer` (optional)
|
||||||
denom_id | Text | the ID of a denominator to check whether the geometry is valid against. Will not reduce length of returned table, but will change values for `valid_denom` (optional)
|
denom_id | Text | the ID of a denominator to check whether the geometry is valid against. Will not reduce length of returned table, but will change values for `valid_denom` (optional)
|
||||||
timespan | Text | the ID of a timespan to check whether the geometry is valid against. Will not reduce length of returned table, but will change values for `valid_timespan` (optional)
|
timespan | Text | the ID of a timespan to check whether the geometry is valid against. Will not reduce length of returned table, but will change values for `valid_timespan` (optional)
|
||||||
|
number_geometries | Integer | Number of geometries of the source data in order to calculate more accurately the score value to know which geometry fits better with the provided extent. (optional)
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
comment = 'CartoDB Observatory backend extension'
|
comment = 'CartoDB Observatory backend extension'
|
||||||
default_version = '1.7.0'
|
default_version = '1.8.0'
|
||||||
requires = 'postgis'
|
requires = 'postgis'
|
||||||
superuser = true
|
superuser = true
|
||||||
schema = cdb_observatory
|
schema = cdb_observatory
|
||||||
|
@ -323,7 +323,8 @@ CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetAvailableGeometries(
|
|||||||
filter_tags TEXT[] DEFAULT NULL,
|
filter_tags TEXT[] DEFAULT NULL,
|
||||||
numer_id TEXT DEFAULT NULL,
|
numer_id TEXT DEFAULT NULL,
|
||||||
denom_id TEXT DEFAULT NULL,
|
denom_id TEXT DEFAULT NULL,
|
||||||
timespan TEXT DEFAULT NULL
|
timespan TEXT DEFAULT NULL,
|
||||||
|
number_geoms INTEGER DEFAULT NULL
|
||||||
) RETURNS TABLE (
|
) RETURNS TABLE (
|
||||||
geom_id TEXT,
|
geom_id TEXT,
|
||||||
geom_name TEXT,
|
geom_name TEXT,
|
||||||
@ -390,15 +391,16 @@ BEGIN
|
|||||||
FROM observatory.obs_meta_geom o
|
FROM observatory.obs_meta_geom o
|
||||||
WHERE %s (geom_tags ?& $4 OR CARDINALITY($4) = 0)
|
WHERE %s (geom_tags ?& $4 OR CARDINALITY($4) = 0)
|
||||||
), scores AS (
|
), scores AS (
|
||||||
SELECT * FROM cdb_observatory._OBS_GetGeometryScores($5,
|
SELECT * FROM cdb_observatory._OBS_GetGeometryScores(bounds => $5,
|
||||||
(SELECT ARRAY_AGG(geom_id) FROM available_geoms)
|
filter_geom_ids => (SELECT ARRAY_AGG(geom_id) FROM available_geoms),
|
||||||
|
desired_num_geoms => $6::integer
|
||||||
)
|
)
|
||||||
) SELECT DISTINCT ON (geom_id) available_geoms.*, score, numtiles, notnull_percent, numgeoms,
|
) SELECT DISTINCT ON (geom_id) available_geoms.*, score, numtiles, notnull_percent, numgeoms,
|
||||||
percentfill, estnumgeoms, meanmediansize
|
percentfill, estnumgeoms, meanmediansize
|
||||||
FROM available_geoms, scores
|
FROM available_geoms, scores
|
||||||
WHERE available_geoms.geom_id = scores.column_id
|
WHERE available_geoms.geom_id = scores.column_id
|
||||||
$string$, geom_clause)
|
$string$, geom_clause)
|
||||||
USING numer_id, denom_id, timespan, filter_tags, bounds;
|
USING numer_id, denom_id, timespan, filter_tags, bounds, number_geoms;
|
||||||
RETURN;
|
RETURN;
|
||||||
END
|
END
|
||||||
$$ LANGUAGE plpgsql;
|
$$ LANGUAGE plpgsql;
|
||||||
|
Loading…
Reference in New Issue
Block a user