3 votos

Cambiar la tolerancia por defecto de ST_Intersects

La tolerancia por defecto de la consulta ST_Intersects de PostGIS es de "0,00001 metros", como se indica en la etiqueta doc . Necesito utilizar la misma consulta con otro valor de tolerancia, pero ST_Intersects sólo toma 2 parámetros de entrada (geom A y geom B).

¿Hay alguna forma de cambiar este valor por defecto?

3voto

5ulo Puntos 186

PostGIS es opensource, de hecho puedes crear una nueva función para ST_INTERSECT con Tolerancia como entrada o actualice la propia función con el valor que le interese y, a continuación, ejecútela.
Aquí está el fragmento de código donde la tolerancia es dinámica, puede ejecutar la secuencia de comandos a continuación en su base de datos y se creará en el esquema público:

CREATE OR REPLACE FUNCTION ST_Intersects(geography, geography,float8)
    RETURNS boolean
    AS 'SELECT $1 && $2 AND _ST_Distance($1, $2, 0.0, false) < $3'
    LANGUAGE 'sql' IMMUTABLE ;

Enlace para la función original de ST_Intersects(geo,geo):
https://github.com/postgis/postgis/blob/c0998a4e638048196a6abfab1504eca6b1a1462f/postgis/geography.sql.in#L720

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X