Muitas vezes é necessário fazer uma atualização de dados por relação espacial no PostGIS. Isso ocorre principalmente quando temos que transformar uma relação espacial em uma relação por chave estrangeira (que é mais rápida em retornar resultados) ou outras, quando há relação espacial entre determinadas geometrias. Quando essas geometrias se tocam, usamos a função ST_Intersects para fazer a atualização (para mais funções de relações espaciais clique aqui).
Por exemplo, uma situação onde é necessário atualizar o número de quadra em lotes:
UPDATE lotes SET id_quadra = id FROM quadras WHERE ST_Intersects(lotes.geom,quadras.geom);
Essa instrução pode ser melhorada, usando o centroide do lote:
UPDATE lotes SET id_quadra = id FROM quadras WHERE ST_Intersects(ST_Centroid(lotes.geom),quadras.geom);
Ou, em outro exemplo, para atualizar o nome do bairro nos lotes:
UPDATE lotes SET nome_bairro = nome FROM bairros WHERE
ST_Intersects(ST_Centroid(lotes.geom),bairros.geom);
Nenhum comentário:
Postar um comentário