tengo 2 mesas:
Una tabla con 3 campos:
id (text) geom (geometry) select ST_SRID(geom) from A where geom is not null result: 32636Tabla B con 2 campos:
name (text) geom (geometry) select ST_SRID(geom) from B where geom is not null result: 0A.geom contiene polígonos
B.geom contiene puntos
Quiero obtener todas las distancias entre A.id, A.geom y B.geom. Probé con:
select id, st_distance(a.geom, ST_Transform(b.geom, 32636)) as dist from A as a, B as b where a.geom is not null group by id, a.geom, b.geom order by dist descPero estoy recibiendo error:
"input geom has unkown(0) SRID"¿Cómo puede ser si estoy usando ST_Transform?
Cómo puedo arreglarlo ?
El mensaje de error se refiere al SRID del argumento de ST_Transform , que es 0. El mensaje significa que la función no tiene idea en qué sistema de coordenadas está el punto, por lo que no puede transformarlo a otro sistema de coordenadas.
La documentación dice:
ST_Transform a menudo se confunde con ST_SetSRID . ST_Transform en realidad cambia las coordenadas de una geometría de un sistema de referencia espacial a otro, mientras que ST_SetSRID() simplemente cambia el identificador SRID de la geometría.
Ese parece ser el caso aquí.
Probablemente debería usar ST_SetSRID para interpretar b.geom en SRID 32636.