Para menos de 100 polígonos en mi conjunto de ~1 millón, estoy obteniendo un comportamiento con ST_SnapToGrid que no entiendo. Dependiendo del parámetro que pase para size
La validez de la geometría resultante varía. ¿Hay algo particular en el polígono? ¿Qué ocurre aquí?
Estoy usando PostgreSQL 10.6 y PostGIS 2.5
Aquí hay ejemplos que utilizan el mismo polígono de entrada y difieren sólo por el parámetro de tamaño a ST_SnapToGrid
.
size
es .1 y el resultado de st_isvalid
es verdadero :
select st_isvalid(st_snaptogrid(st_geomfromtext('MULTIPOLYGON (((
473473.3724999996 5007378.8574, 473487.03199999966 5007296.7063,
473487.04140000045 5007296.6579, 473487.0406999998 5007296.6544,
473487.03639999963 5007296.6579, 473477.86390000023 5007296.6269000005,
473473.3724999996 5007378.8574)))'), .1))
size
es .01 y el resultado de st_isvalid
es falso :
select st_isvalid(st_snaptogrid(st_geomfromtext('MULTIPOLYGON (((
473473.3724999996 5007378.8574, 473487.03199999966 5007296.7063,
473487.04140000045 5007296.6579, 473487.0406999998 5007296.6544,
473487.03639999963 5007296.6579, 473477.86390000023 5007296.6269000005,
473473.3724999996 5007378.8574)))'), .01))
size
es .001 y el resultado de st_isvalid
es verdadero :
select st_isvalid(st_snaptogrid(st_geomfromtext('MULTIPOLYGON (((
473473.3724999996 5007378.8574, 473487.03199999966 5007296.7063,
473487.04140000045 5007296.6579, 473487.0406999998 5007296.6544,
473487.03639999963 5007296.6579, 473477.86390000023 5007296.6269000005,
473473.3724999996 5007378.8574)))'), .001))