Estoy tratando de realizar algunos análisis de relaciones espaciales utilizando funciones de Postgis como st_dwithin
y st_dfullywithin
. Busqué y encontré que para cualquier SRID, usando el geography
da los resultados en metros, lo que funciona bien para st_dwithin
. Sin embargo, el st_dfullywithin
los argumentos deben ser del tipo geometry
por lo que este enfoque no funciona.
Mi SRID base es 4283 y he probado a transformar el SRID de los objetos geométricos en el SRID 3577 que sigue sin funcionar.
Como prueba, he intentado medir la distancia entre dos puntos utilizando diferentes SRID y los tipos de geometría y geografía. Creo que las unidades de 3577 es en metros, pero cuando ejecuto la prueba para obtener la distancia entre dos puntos utilizando SRID 3577 devuelve los resultados en grados, pero cambiando el tipo a geografía devuelve metros.
Creía que al cambiar el SRID por uno con metros se obtendrían metros. Si no es así, ¿cómo se puede trabajar en metros?
EDIT: La consulta para obtener la distancia que da el resultado en grados es,
select st_distance(st_geomfromtext('POINT(150.9319747 -33.8482439)', 3557), st_geomfromtext('POINT(151.9319747 -34.8482439)', 3557))
Si utilizo el mismo SRID, tengo que utilizar la siguiente consulta para obtener el resultado en metros
select st_distance(st_geomfromtext('POINT(150.9319747 -33.8482439)', 3557)::geography, st_geomfromtext('POINT(151.9319747 -34.8482439)', 3557)::geography)
Mi objetivo final es afinar geom
que se encuentran en un radio determinado de un punto,
select
*
from table_1 a
where ST_DWithin(st_transform(a.geom, 3557), st_transform(st_geomfromtext('POINT(150.9319747 -33.8482439)', 4283),3557), 50000);
A pesar de utilizar los diferentes SRID, la relación sigue considerando los grados y no los metros.