From: Bborie Park Date: Tue, 22 May 2012 17:05:27 +0000 (+0000) Subject: Added SRID check to ST_NearestValue X-Git-Tag: 2.1.0beta2~996 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b6650c36a441fa4d4086916e6d17287a1b693657;p=postgis Added SRID check to ST_NearestValue git-svn-id: http://svn.osgeo.org/postgis/trunk@9787 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/raster/rt_pg/rt_pg.c b/raster/rt_pg/rt_pg.c index 41d7cd93a..52480a0fa 100644 --- a/raster/rt_pg/rt_pg.c +++ b/raster/rt_pg/rt_pg.c @@ -2420,6 +2420,13 @@ Datum RASTER_nearestValue(PG_FUNCTION_ARGS) if (!PG_ARGISNULL(3)) exclude_nodata_value = PG_GETARG_BOOL(3); + /* SRIDs of raster and geometry must match */ + if (gserialized_get_srid(geom) != rt_raster_get_srid(raster)) { + elog(NOTICE, "SRIDs of geometry and raster do not match"); + rt_raster_destroy(raster); + PG_RETURN_NULL(); + } + /* get band */ band = rt_raster_get_band(raster, bandindex - 1); if (!band) { diff --git a/raster/rt_pg/rtpostgis.sql.in.c b/raster/rt_pg/rtpostgis.sql.in.c index f6e6846ed..3a4b21ac2 100644 --- a/raster/rt_pg/rtpostgis.sql.in.c +++ b/raster/rt_pg/rtpostgis.sql.in.c @@ -3520,7 +3520,7 @@ CREATE OR REPLACE FUNCTION st_nearestvalue( exclude_nodata_value boolean DEFAULT TRUE ) RETURNS double precision - AS $$ SELECT st_nearestvalue($1, $2, st_makepoint(st_raster2worldcoordx($1, $3, $4), st_raster2worldcoordy($1, $3, $4)), $5) $$ + AS $$ SELECT st_nearestvalue($1, $2, st_setsrid(st_makepoint(st_raster2worldcoordx($1, $3, $4), st_raster2worldcoordy($1, $3, $4)), st_srid($1)), $5) $$ LANGUAGE 'SQL' IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION st_nearestvalue( @@ -3529,7 +3529,7 @@ CREATE OR REPLACE FUNCTION st_nearestvalue( exclude_nodata_value boolean DEFAULT TRUE ) RETURNS double precision - AS $$ SELECT st_nearestvalue($1, 1, st_makepoint(st_raster2worldcoordx($1, $2, $3), st_raster2worldcoordy($1, $2, $3)), $4) $$ + AS $$ SELECT st_nearestvalue($1, 1, st_setsrid(st_makepoint(st_raster2worldcoordx($1, $2, $3), st_raster2worldcoordy($1, $2, $3)), st_srid($1)), $4) $$ LANGUAGE 'SQL' IMMUTABLE STRICT; -----------------------------------------------------------------------