]> granicus.if.org Git - postgis/commitdiff
Fixed problem with passing PROJ.4 text to GDAL which may result in SRS WKT that is...
authorBborie Park <bkpark at ucdavis.edu>
Fri, 2 Mar 2012 19:00:44 +0000 (19:00 +0000)
committerBborie Park <bkpark at ucdavis.edu>
Fri, 2 Mar 2012 19:00:44 +0000 (19:00 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@9386 b70326c6-7e19-0410-871a-916f4a2858ee

raster/rt_pg/rt_pg.c

index 7acb46d408efc3f7a0ccaf9bae6547a11c1e9858..cdddcdb5a591769bebf3555b08d2a26a8730cea9 100644 (file)
@@ -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) {