]> granicus.if.org Git - postgis/commitdiff
harmonize SRID mismatch testing
authorPaul Ramsey <pramsey@cleverelephant.ca>
Wed, 22 Jul 2015 13:39:58 +0000 (13:39 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Wed, 22 Jul 2015 13:39:58 +0000 (13:39 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@13825 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/lwgeom_backend_api.c
postgis/lwgeom_spheroid.c

index 2259869faf6e929668600cac4a2c34ee09219e08..5bac65d5d29e4c2d8c9429e5a6395ff578caf3de 100644 (file)
@@ -181,12 +181,8 @@ Datum intersects3d_dwithin(PG_FUNCTION_ARGS)
     LWGEOM *lwgeom1 = lwgeom_from_gserialized(geom1);
     LWGEOM *lwgeom2 = lwgeom_from_gserialized(geom2);
 
-    if (lwgeom1->srid != lwgeom2->srid)
-    {
-       elog(ERROR,"Operation on two GEOMETRIES with different SRIDs\n");
-       PG_RETURN_NULL();
-    }
-    
+       error_if_srid_mismatch(lwgeom1->srid, lwgeom2->srid);
+       
     mindist = lwgeom_mindistance3d_tolerance(lwgeom1,lwgeom2,0.0);
     
     PG_FREE_IF_COPY(geom1, 0);
index 96504de0a9c864a3c0690b048a53fdc54fe2428d..41e7ed623b08ace64c15a4e11604056983fce774 100644 (file)
@@ -481,6 +481,8 @@ Datum geometry_distance_spheroid(PG_FUNCTION_ARGS)
        /* Calculate some other parameters on the spheroid */
        spheroid_init(sphere, sphere->a, sphere->b);
 
+       error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
+
        /* Catch sphere special case and re-jig spheroid appropriately */
        if ( ! use_spheroid )
        {
@@ -501,13 +503,6 @@ Datum geometry_distance_spheroid(PG_FUNCTION_ARGS)
                PG_RETURN_NULL();
        }
 
-
-       if (gserialized_get_srid(geom1) != gserialized_get_srid(geom2))
-       {
-               elog(ERROR, "geometry_distance_spheroid: Operation on two GEOMETRIES with different SRIDs\n");
-               PG_RETURN_NULL();
-       }
-
        /* Get #LWGEOM structures */
        lwgeom1 = lwgeom_from_gserialized(geom1);
        lwgeom2 = lwgeom_from_gserialized(geom2);