Mostrando postagens com marcador Bancos de dados espaciais. Mostrar todas as postagens
Mostrando postagens com marcador Bancos de dados espaciais. Mostrar todas as postagens

terça-feira, 7 de janeiro de 2020

DESCOBRIR QUAL VERSÃO DO POSTGRESQL E DO POSTGIS ESTOU USANDO

Para saber qual é a versão do PostgreSQL e do PostGIS que você está usando, execute os comandos abaixo em uma ferramenta SQL conectada à base desejada (as imagens são do PgAdmin 4):

  • PostgreSQL: SELECT version(); ou SHOW server_version;
 


  • PostGIS: SELECT * FROM PostGis_Full_Version();


quarta-feira, 2 de outubro de 2019

VISUALIZANDO MAPAS DO POSTGIS NO PGADMIN 4

Nas últimas versões do PgAdmin 4 é possível visualizar os dados de uma consulta que tenha objetos espaciais no mapa. Observe a consulta abaixo, dos municípios com mais de 200.000 habitantes no estado de São Paulo:


No título da coluna com o dado espacial aparece um ícone com formato de "olho" (View all geometries in this column). Clicando nele (ou na aba "Geometry Viewer") é possível visualizar os dados em um mapa (onde é possível, inclusive, escolher o mapa base que fica sob as geometrias).


segunda-feira, 4 de setembro de 2017

ATUALIZAÇÃO COM RELAÇÃO ESPACIAL NO POSTGIS

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);

quinta-feira, 30 de julho de 2015

HABILITANDO O TIPO GEOMETRY NO POSTGRESQL/POSTGIS

Caso você esteja tentando executar uma instrução SQL para criação de tabela com elementos espaciais no PostgreSQL/PostGIS e tenha obtido o erro de que o tipo "geometria" - ou qualquer outro do PostGIS - não exista (ERROR: type "geometry" does not exist), isso se refere ao fato de elementos do PostGIS "não terem sido carregados" (o que pode ocorrer por diversos motivos).

A solução do problema é simples:

  • Entre no PGAdmin;
  • Conecte-se ao banco desejado;
  • Abra a janela de SQL e digite o comando "CREATE EXTENSION postgis;" e execute (F5).
Pronto, o seu banco de dados já está aceitando os tipos de dados do PostGIS.


quinta-feira, 16 de julho de 2015

ALTERANDO OU RECUPERANDO A SENHA DO USUÁRIO POSTGRES (POSTGRESQL/POSTGIS) NO WINDOWS

Em algumas situações (restore por SQL, dependendo da maneira como ele foi gerado, por exemplo) a senha do usuário postgres do PostgreSQL pode ser alterada. Se ocorreu essa situação, ou se por algum outro motivo você esqueceu ou perdeu a senha, pode seguir os passos abaixo para recuperá-la:
  1. Abra o arquivo pg_hba.conf (o arquivo que contém, entre outras, as configurações de acesso do PostgreSQL e pode ser aberto no bloco de notas ou no próprio PGAdmin. Ele se encontra na pasta data);
  2. No final do arquivo, substitua a palavra md5 por trust (em METHOD, nas linhas que não estão comentadas. Isso permitirá o acesso sem o uso de senha);
  3. No Windows, vá em "Serviços", encontre o postgresql, selecione e clique em Reiniciar o serviço.
  4. No prompt de comando do Windows, vá até a pasta bin, dentro da instalação do PostgreSQL (por exemplo: C:\Program Files\PostgreSQL\9.4\bin) e execute o comando: psql -h localhost -U postgres -W -d postgres (esse último pode ser o nome de qualquer banco de dados existente) e tecle enter. Se pedir a senha tecle enter.
  5. Conectado no psql execute o comando ALTER USER postgres ENCRYPTED PASSWORD 'senha'; (substituindo 'senha' pela senha que você deseja).
  6. Saia do prompt, retorne aos serviços e reinicie novamente o serviço do postgresql. Lembre-se de alterar novamente o arquivo pg_hba.conf para que o usuário postgres não possa ser acessado sem senha.
Observação: em substituição às etapas 3, 4 e 5, você também pode se logar pelo pgAdmin e executar a instrução ALTER USER postgres ENCRYPTED PASSWORD 'senha'; (substituindo 'senha' pela senha que você deseja) na janela de SQL e executá-la.

Pronto, você já pode acessar o PostgreSQL pelo usuário postgres usando a nova senha.

terça-feira, 2 de abril de 2013

GEOMETRIAS SIMPLES E MÚLTIPLAS


   Um conceito muito presente em bancos de dados geográficos é o de geometrias simples e múltiplas. Mas o ideal é usar Polygon ou MultiPolygon? LineString ou MultiLineString? A resposta depende do uso que se quer dar a essas feições.
   O conceito: primeiramente é importante entender o conceito, ou seja, o que diferencia geometrias simples de múltiplas. O melhor modo de entender isso é utilizando exemplos: em uma tabela de países, a área do Brasil poderia ser representada por um único polígono, mas e a do Japão? Seriam necessários pelo menos 4 polígonos para representar suas principais ilhas. Outro exemplo é que algumas rodovias no Brasil são descontinuadas, ou seja, uma linha apenas não poderia representá-las totalmente. Essa é a essência do conceito de múltiplas geometrias - em uma única feição pode ser armazenada mais de uma representação espacial, diferente das geometrias simples, onde cada feição associa-se a uma única representação espacial.
Obs.: Alguns bancos de dados espaciais também usam conceitos de coleções geométricas, onde podem coexistir linhas, pontos e/ou polígonos em uma mesma tabela.
   Quando usar: deve-se analisar cada caso, mas de modo geral pode-se dizer que o ideal é utilizar geometrias múltiplas apenas quando necessário (quando feições precisarem de mais de uma representação espacial) e para as demais situações utilizar geometrias simples, especialmente porque diversas funções espaciais somente funcionam sobre geometrias simples.

terça-feira, 15 de janeiro de 2013

SISTEMAS DE INFORMAÇÃO GEOGRÁFICA, BANCOS DE DADOS ESPACIAIS E ARQUITETURAS

   Dentre os Sistemas de Informações Geográficas mais utilizados destacam-se os proprietários ArcGIS e IDRISI, e os livres Quantum GIS, gvSIG, GRASS e SPRING (embora este não possa ser considerado um software livre, é gratuito e brasileiro), entre outros. No caso dos Sistemas Gerenciadores de Bancos de Dados Espaciais (ou Geográficos) temos os proprietários Oracle Spatial e SQL Server 2008, e os livres PostGIS (extensão do PostgreSQL), MySQL e SpatiaLite (extensão do SQLite, que não é propriamente um SGBD, mas sim uma biblioteca em C que implementa um banco de dados embutido com funções SQL), entre outros.
   Embora seja muito usado na área pela facilidade de acesso local e disponibilidade, o Microsoft Access não possui suporte espacial, no entanto é utilizado (assim como outros SGBDs) através da arquitetura dual, ou seja, os dados alfanuméricos são armazenados no banco de dados e os dados espaciais (o “desenho”) é armazenado em formatos específicos definidos pelo SIG em uso. No entanto, essa abordagem tem uma série de limitações, como a dependência de um SIG específico, acesso apenas local e outros.
   O fato é que, infelizmente, muitos profissionais que atuam na área desconhecem o uso de bancos de dados espaciais e as diversas vantagens associadas ao seu uso (como possibilidade de acesso concorrente, relacionamentos e funções de topologia, manipulação direta de dados espaciais, etc.). Isso se deve a diversos fatores, especialmente a falta de qualificação adequada, o uso do SIG apenas como cadastro, e outros. Mas é importante lembrar que há muito material na internet (especialmente em relação aos softwares livres, devido ao contexto comunitário de seu desenvolvimento e aplicação) e, com alguma dedicação e um pouco de tempo, é perfeitamente possível a um profissional que atua na área limitado por um banco de dados local e/ou sem suporte espacial migrar para um contexto de SGBD com suporte espacial e maior liberdade em relação ao SIG utilizado.
   Após um bom tempo de pesquisas, optei na minha atividade profissional pelo uso do PostGIS e do SIG Quantum GIS. No caso do PostGIS por ter ampla integração com SIGs em geral (praticamente todos os mais utilizados possuem suporte a esse SGBD) e o Quantum GIS foi escolhido por possuir uma interface muito amigável, ser de fácil uso, ter suporte à linguagem Pyton (com diversos complementos) e às ferramentas Sextante, além de não interferir no banco de dados PostGIS (alguns SIGs exigem algumas modificações e/ou adequações no SGBD), mas sempre que necessário (para algum tipo de análise específica indisponível no Quantum GIS, por exemplo) utilizo também outros SIGs.