Neste tutorial iremos tratar mais uma vez de uma situação comum durante os trabalhos de Geoprocessamento que envolvam bancos de dados geográficos, em especial o PostGIS: A importação de arquivos do formato shapefile para a base de dados. Veremos como usar a ferramenta de importação de shapefiles para o PostGIS presente no Quantum GIS (QGIS).
Anteriormente foi publicado em nosso site um outro tutorial que explica como realizar esse procedimento através do comando shp2pgsql, via prompt do DOS:
Não custa lembrar que tanto o QGIS (software de SIG) como o PostgreSQL (Sistema Gerenciador de Banco de Dados) são softwares livres.
VANTAGENS DE IMPORTAR SHAPEFILE USANDO O QGIS
As principais vantagens que percebemos desse método em relação ao convencional citado acima são simplicidade e a rapidez. Pois, quando usamos o comando shp2pgsql no prompt do DOS é gerado um arquivo SQL (*.sql) que posteriormente será carregado para o banco de dados como tabela espacial.
Como você poderá ver neste tutorial usando essa ferramenta do QGIS, o shapefile já é importado como tabela, vencendo-se, por assim dizer, uma das etapas, o que no mínimo representa algum ganho de tempo. No entanto, pode-se ter problemas no caso de shapefiles onde há acentos e caractéres especial na tabela de atributos. Fique atento à codificação.
BARRA DE FERRAMENTAS PLUGINS
Possivelmente ao instalar e iniciar o Quantum GIS pela primeira vez nem todas as barras de ferramentas estarão visíveis. Portanto, é necessário que se as habilite. Para isso, clique com o botão direito do mouse sobre a parte superior da tela de visualização do QGIS torne disponível a (s) barra (s) que achar necessário. A barra que contém a ferramenta de importação de shapefiles para o PostGIS é a denominada plugins ou complementos.
Essa barra de ferramentas, “Plugins”, inclui além da ferramenta tratada nesse tutorial uma série de outras opções: Etiqueta de Copyright, adicionar camada de texto delimitado, georeferencer, criar quadrículas, barra de escala e adicionar camada de um servidor de mapas WFS, entre muitas outas.
Na figura seguinte poderá notar que a ferramenta de importação de shapefiles possui um ícone bem sugestivo (na imagem, o penúltimo da esquerda para direita), em forma de elefante, fazendo referência à logomarca do PostgreSQL/PostGIS.
FERRAMENTA DE IMPORTAÇÃO DE SHAPEFILE PARA POSTGIS
Se você clicar no ícone correspondente, mostrado na figura anterior, será aberta a seguinte interface gráfica:
Em nosso exemplo iremos importar um arquivo shape que representa a divisão do Brasil em regiões. Observe que para a configuração da ferramenta é necessário se preencher alguns parâmetros. Iremos fornecê-los a partir de agora.
DEFINIÇÃO DA CONEXÃO POSTGRESQL
A primeira etapa é a criação de uma nova conexão com o PostgreSQL. Clique em “Novo”. Será aberta uma janela onde definiremos as características dessa nova conexão.
Vamos entender o que significa cada um desses parâmetros:
- Nome – É a denominação, uma identificação dada à conexão. Pode ser um nome aleatório, mas é aconselhável que se escolha algo que ajude-o a relacionar facilmente o nome da conexão ao tipo de dados representados por ela. (No nosso caso escolhemos ‘brasil');
- Servidor – Esse parâmetro diz respeito ao local onde estão armazenados os dados (Arquivo *.shp), como neste exemplo estão na própria máquina, usamos localhost (Máquina local). No caso de computadores em rede, podem-se acessar os dados fornecendo-se o IP da máquina que contém os arquivos;
- Banco de Dados – Deve ser preenchido, evidentemente, com o nome do banco de dados no qual será criada a nova tabela espacial. Em nosso caso, ‘brasil’. (Banco criado antecipadamente com a codificação adequada no PostgreSQL/PostGIS);
- Porta – Por padrão, usa-se para o PostgreSQL o valor ‘5432’;
- Usuário – Nome do usuário gerenciador do banco de dados, em geral definido durante a instalação do PostgreSQL. (Em nosso caso, ‘postgres’);
- Senha – Também definida durante a instalação do banco de dados, visando a segurança no tocante ao acesso aos dados.
Após isso basta ‘Testar a conexão‘ e confirmar em ‘Ok'.
LISTANDO E IMPORTANDO OS SHAPEFILES
Nessa segunda etapa escolha o botão ‘Adicionar' para procurar o diretório onde está guardado o arquivo *.shp. Desmarque a opção ‘Utilizar o SRID Padrão' que é ‘-1'. Nesse caso usaremos o SRID, o Identificador do Sistema de Referência Espacial, relacionado com a projeção usada, ‘4291’ que se refere ao DATUM SAD69 e às coordenadas geográficas (Latitude/Longitude).
Podemos, sem problemas, usar o nome da coluna geométrica padrão (the_geom) e o esquema global ‘public‘.
Agora só nos resta confirmar os parâmetros fornecidos e executar a operação em ‘Ok'. Pronto! Foi realizada a importação do arquivo para o PostGIS, em forma de uma tabela. Essa tabela poderá ser visualizada em vários softwares de SIG que se conectam com o PostGIS.
Espero que este tutorial como os demais já publicados possam servir para disseminação de conhecimento, o qual deve ser compartilhado.
DOWNLOAD GRATUITO DO TUTORIAL
Para baixar esse tutorial, na versão completa, em formato PDF, acesse:
-
[download id=”26″]
Leia mais alguns tutoriais sobre o QGIS e PostGIS publicados neste blog:
O que acham de deixar um comentário?
8 respostas
COMO FACO PARA INSERIR VARIOS SHAPE FILES AO MESMO TEMPO NO QGIS?
Como importar atributos como por exemplo, cotas do .dxf para o QGIS?
Não estou achando este plugin no QGis 2.14.6 qual o nome para download do mesmo?
Felipe,
Procure pelo DB Manager ou pelo SPIT.
Abraço!
Anderson,
Consegui importar através da ferramenta própria do PostGIS.
Eu precisava realizar algumas analises entre duas camadas, como por exemplo a area que uma ocupa sob a outra, ex:
O tanto que o estado de MG esta ocupando do Brasil.
Teria alguma formula, scrip, ferramenta pra esse tipo de analise?
Obrigado!
Olá, parabéns pelo tutorial. Eu sou novo no trato com banco de dados geográficos, segui os procedimentos descritos, mas ocorre um erro e gostaria de saber o que pode estar acontecendo. Reproduzo a descrição do erro a seguir:
“Problema inserindo feições do arquivo:
C:/Documents and Settings/21389561801/Limite_Municipio.shp
Ocorreu um erro no banco de dados ao executar este SQL:
SELECT AddGeometryColumn(‘public’,’Limite_Municipio’,’the_geom’,4674,’NULL’,2)
O erro foi:
ERRO: Invalid type name “NULL(2)” – valid ones are:
POINT, MULTIPOINT,
LINESTRING, MULTILINESTRING,
POLYGON, MULTIPOLYGON,
CIRCULARSTRING, COMPOUNDCURVE, MULTICURVE,
CURVEPOLYGON, MULTISURFACE,
GEOMETRY, GEOMETRYCOLLECTION,
POINTM, MULTIPOINTM,
LINESTRINGM, MULTILINESTRINGM,
POLYGONM, MULTIPOLYGONM,
CIRCULARSTRINGM, COMPOUNDCURVEM, MULTICURVEM
CURVEPOLYGONM, MULTISURFACEM, TRIANGLE, TRIANGLEM,
POLYHEDRALSURFACE, POLYHEDRALSURFACEM, TIN, TINM
or GEOMETRYCOLLECTIONM
CONTEXT: SQL statement “SELECT AddGeometryColumn(”,$1,$2,$3,$4,$5,$6,$7)”
função PL/pgSQL “addgeometrycolumn” linha 5 em comando SQL”
Olá Anderson.
Tento importar um arquivo shp conforme suas orientações, mas então pede que eu especifique uma conexão primeiro.Como procedo?
Neste mesmo tutorial Diego há explicações sobre isso no tópico: “DEFINIÇÃO DA CONEXÃO POSTGRESQL”.
Em caso de dúvidas, entre em contato.
Abraço!