Cuando quiero almacenar los resultados de una consulta espacial como otra tabla PostGIS, ¿qué debo hacer? Estoy interesado en identificar todos los edificios residenciales que caen dentro de un conjunto de parcelas:
CREATE TABLE residentialBuildings AS
SELECT buildings.the_geom
FROM parcels as p
JOIN buildings as b
ON ST_Contains(p.the_geom, b.the_geom)
WHERE p.residentialarea > 0;
Esto parece funcionar, pero no devuelve un resultado espacial; en cambio, la tabla tiene la representación binaria de la geometría. No estoy seguro de lo que debería hacer para crear una tabla como resultado. ¿Es necesario que primero hacer una mesa, y luego convertir el resultado en una geometría?
(He leído la documentación, pero siento que me faltan los términos de búsqueda correctos, ya que creo que esto debe ser algo bastante obvio).
Me doy cuenta de que hay muchos comandos para hacer una geometría
ST_GeogFromText
ST_GeographyFromText
ST_GeogFromWKB
ST_GeomCollFromText
ST_GeomFromEWKB
ST_GeomFromEWKT
ST_GeometryFromText
ST_GeomFromGML
ST_GeomFromKML
ST_GMLToSQL
ST_GeomFromText
ST_GeomFromWKB
pero no sé qué opción elegir, o si este es el enfoque correcto.
ERROR: column "polygon" does not exist SQL state: 42703
¿Sabes qué puede estar causando el error? La tabla existe, y también intenté usarlaPOLYGON
.El resultado es una tabla espacial con solo una columna en forma de geometría. La representación binaria es correcta. Si está usando esto fuera de PostGIS (digamos ArcGIS o QGIS o lo que sea), probablemente esté buscando dos cosas:
fuente