estoy usando el siguiente vecino más cercano consulta en PostGIS:K-vecinos más cercanos consulta en PostGIS
SELECT g1.gid g2.gid FROM points as g1, polygons g2
WHERE g1.gid <> g2.gid
ORDER BY g1.gid, ST_Distance(g1.the_geom,g2.the_geom)
LIMIT k;
Ahora, que he creado índices en the_geom, así como la columna GID en ambas tablas, esta consulta es Tomando mucho más tiempo que otras consultas espaciales que involucran uniones espaciales b/w dos tablas.
¿Hay alguna forma mejor de encontrar a los vecinos más cercanos? Estoy usando PostGIS.
Y, otra consulta que está tomando un tiempo inusualmente largo a pesar de crear índices en la columna de geometría es:
select g1.gid , g2.gid from polygons as g1 , polygons as g2
where st_area(g1.the_geom) > st_area(g2.the_geom) ;
creo, estas consultas enviaban beneficiados por los índices del esencial, pero ¿por qué?
Considerando que la presente consulta:
select a.polyid , sum(length(b.the_geom)) from polygon as a , roads as b
where st_intersects(a.the_geom , b.the_geom);
devuelve un resultado después de algún tiempo a pesar de la participación de "caminos" de mesa que es mucho más grande que los polígonos o puntos de mesa y también están implicados conductores espaciales más complejas.
Supongo que su pregunta es cómo acelerar la consulta? ¿Puede mostrarnos los resultados de 'EXPLAIN ANALYZE SELECT ....'? De esa forma, quizás podamos saber qué está pasando allí. – Thilo
No, mi pregunta es por qué esta consulta está tomando incluso más de 5 veces el tiempo tomado por la tercera consulta anterior. –
bien, después de mucho esperar, para IInd Query, recibo el siguiente mensaje de error: "memoria insuficiente para el resultado de la consulta" y finalización de la consulta. ¿Puede alguien arrojar luz sobre esto? –