From: Bborie Park Date: Fri, 2 Mar 2012 19:00:44 +0000 (+0000) Subject: Fixed problem with passing PROJ.4 text to GDAL which may result in SRS WKT that is... X-Git-Tag: 2.0.0beta2~41 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=453e944c85a57e5599960a63086780dc6cb31954;p=postgis Fixed problem with passing PROJ.4 text to GDAL which may result in SRS WKT that is NOT what is desired. Now preferentially use EPSG:SRID if available. Ticket is #1618. git-svn-id: http://svn.osgeo.org/postgis/trunk@9386 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/raster/rt_pg/rt_pg.c b/raster/rt_pg/rt_pg.c index 7acb46d40..cdddcdb5a 100644 --- a/raster/rt_pg/rt_pg.c +++ b/raster/rt_pg/rt_pg.c @@ -493,7 +493,7 @@ rtpg_getSR(int srid) char *tmp = NULL; char *srs = NULL; - len = sizeof(char) * (strlen("SELECT CASE WHEN length(proj4text) > 0 THEN proj4text ELSE srtext END FROM spatial_ref_sys WHERE srid = LIMIT 1") + MAX_INT_CHARLEN + 1); + len = sizeof(char) * (strlen("SELECT CASE WHEN upper(auth_name) = 'EPSG' AND length(auth_srid::text) > 0 THEN upper(auth_name) || ':' || auth_srid WHEN length(proj4text) > 0 THEN proj4text ELSE srtext END FROM spatial_ref_sys WHERE srid = LIMIT 1") + MAX_INT_CHARLEN + 1); sql = (char *) palloc(len); if (NULL == sql) { elog(ERROR, "rtpg_getSR: Unable to allocate memory for sql\n"); @@ -508,7 +508,7 @@ rtpg_getSR(int srid) } /* execute query */ - snprintf(sql, len, "SELECT CASE WHEN length(proj4text) > 0 THEN proj4text ELSE srtext END FROM spatial_ref_sys WHERE srid = %d LIMIT 1", srid); + snprintf(sql, len, "SELECT CASE WHEN upper(auth_name) = 'EPSG' AND length(auth_srid::text) > 0 THEN upper(auth_name) || ':' || auth_srid WHEN length(proj4text) > 0 THEN proj4text ELSE srtext END FROM spatial_ref_sys WHERE srid = %d LIMIT 1", srid); spi_result = SPI_execute(sql, TRUE, 0); SPI_pfree(sql); if (spi_result != SPI_OK_SELECT || SPI_tuptable == NULL || SPI_processed != 1) {