Formatos de dados suportados

QGIS uses the OGR library to read and write vector data formats (GRASS vector and PostgreSQL support is supplied by native QGIS data provider plugins),including ESRI Shapefiles, MapInfo and Microstation file formats; PostGIS, SpatiaLite, Oracle Spatial databases and many more. The vector data can also be loaded in read mode from zip and gzip archives into QGIS. At the date of this document, 69 vector formats are supported by the OGR library (see OGR-SOFTWARE-SUITE Referências Bibliográficas e Web). The complete list is available at http://www.gdal.org/ogr/ogr_formats.html.

Nota

Not all of the listed formats may work in QGIS for various reasons. For example, some require external commercial libraries or the GDAL/OGR installation of your OS was not build to support the format you want to use. Only those formats that have been well tested will appear in the list of file types when loading a vector into QGIS. Other untested formats can be loaded by selecting *.*.

Procedimentos com dados vetoriais GRASS são descritos na Seção Integração com SIG GRASS.

This section describes how to work with several common formats: ESRI Shapefiles, PostGIS layers and SpatiaLite layers. Many of the features available in QGIS work the same, regardless of the vector data source. This is by design and includes the identify, select, labeling and attributes functions.

Shapefiles ESRI

O formato de arquivo vetorial padrão usado pelo QGIS é o Shapefile ESRI. O suporte é fornecido pela Livraria OGR Simple Feature ( http://www.gdal.org/ogr/ ).

Um shapefile consiste na verdade de um conjunto de vários arquivos. Os três seguintes são necessários:

  1. .shp arquivo que contém as formas vetoriais.

  2. .dbf arquivo que contém os atributos no formato dBase..

  3. .shx arquivos indicadores.

Shapefiles também podem incluir um arquivo com a extensão .prj que contém as informações de projeção. Embora seja muito útil um arquivo de projeção, não é obrigatória. Um conjunto de dados shapefile pode conter arquivos adicionais. Para mais detalhes veja a especificação técnica ESRI em: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf.

Carregando um Shapefile

mActionAddNonDbLayer Para carregar um shapefile, inicie o QGIS e clique no botão mActionAddNonDbLayer Adicionar camada vetorial da barra de ferramentas ou simplesmente digite Ctrl+Shift+V. Isso fará com que surja uma nova janela (see figure_vector_1).

Figure Vector 1:

../../../_images/addvectorlayerdialog.png

Add Vector Layer Dialog nix

From the available options check radiobuttonon File. Click on button [Browse]. That will bring up a standard open file dialog (see figure_vector_2) which allows you to navigate the file system and load a shapefile or other supported data source. The selection box Filter selectstring allows you to preselect some OGR supported file formats.

Você também pode selecionar o tipo de codificação para o shapefile, se desejar.

Figure Vector 2:

../../../_images/shapefileopendialog.png

Open an OGR Supported Vector Layer Dialog nix

Ao selecinar um shapefile a partir da lista e clicando em [Abrir] o QGIS o carregará. A Figure_vector_3 exibe o QGIS depois de carregar o arquivo alaska.shp.

Figure Vector 3:

../../../_images/shapefileloaded.png

QGIS with Shapefile of Alaska loaded nix

Dica

Cores das camadas

Quando você adiciona uma camada ao mapa, é atribuída uma cor aleatória. Na adição de mais de uma camada de uma vez, são atribuídas cores diferentes para cada camada.

Uma vez carregado, você pode aplicar zoom em todo o shapefile usando as ferramentas de navegação do mapa. Para alterar o estilo de uma camada, abra a caixa de diálogo Propriedades da camada clicando duas vezes no nome da camada ou clicando com o botão direito do mouse sobre o nome na legenda e escolha Propriedades a partir do menu pop-up. Consulte a Seção Aba de Estilo para mais informações sobre a definição da simbologia das camadas vetoriais.

Dica

Carregando camadas e armazenando projetos em unidades externas no OS X

No OS X, unidades portáteis que são armazenadas além do disco rígido principal não aparecem no File ‣Open Project `como esperado. Para resolver isso estamos trabalhando em uma forma mais nativa do OS X com caixa de diálogo abrir/salvar. Como alternativa, você pode digitar ‘/Volumes’ no campo Nome do arquivo e pressione :kbd:`Voltar. Depois, você pode navegar para unidades externas ou armazenadas em rede.

Melhorando o Desempenho do Shape

Para melhorar o desempenho do desenho de um shapefile, você pode criar um índice espacial. Um índice espacial irá melhorar a velocidade do zoom e visão panorâmica. Os índices espaciais utilizados pelo QGIS estão na extensão .qix.

Siga estes passos para criar o índice:

  • Carregue um shapefile.

  • Abra a caixa de diálogo Propriedades da camada clicando duas vezes sobre o nome do shapefile na legenda ou com o botão direito do mouse e escolha Propriedades a partir do menu pop-up.

  • Na guia :guilabel:’Geral’, clique no botão [Criar índice espacial].

Problema ao carregar um arquivo shape .prj

Se você carregar um arquivo shapefile .prj no QGIS e o sistema não é capaz de ler a referência de coordenadas a partir desse arquivo, você tem que definir a projeção adequada manualmente dentro guia :Guilabel:’Geral’ da caixa de diálogo Propriedades da camada. Isto é devido ao fato de que arquivos .prj muitas vezes não fornecem os parâmetros de projeção completos, conforme usado no QGIS e listados na guia CRS.

Por essa razão, se você criar um novo shapefile no QGIS, dois arquivos de projeção diferentes são criados. Um arquivo .prj com os parâmetros limitados de projeção, compatível com o software ESRI, e um arquivo .qpj, fornecendo os parâmetros completos dos CRS ​​usados. Se o QGIS encontra um arquivo .qpj, ele será usado em vez do arquivo prj.

Carregando uma camada MapInfo

mActionAddNonDbLayer To load a MapInfo layer, click on the mActionAddNonDbLayer Add Vector Layer toolbar button or type Ctrl+Shift+V, change the file type filter Filter selectstring: to ‘Mapinfo File [OGR]’ and select the MapInfo layer you want to load.

Carregando uma camada ArcInfo Binary

mActionAddNonDbLayer To load an ArcInfo binary coverage, click on the mActionAddNonDbLayer Add Vector Layer toolbar button or press Ctrl+Shift+V to open the Add Vector Layer dialog. Select radiobuttonon Directory. Change to Filter selectstring to ‘Arc/Info Binary Coverage’. Navigate to the directory that contains the coverage files and select it.

Da mesma forma, você pode carregar arquivos vetoriais baseados em um diretório no formato UK National Transfer, bem como os formatos TIGER do Census Bureau US.

Camadas PostGIS

Camadas PostGIS são armazenados em um banco de dados PostgreSQL. As vantagens do PostGIS são a indexação espacial, filtragem e recursos de consulta. Usando o PostGIS, funções vetoriais, como selecionar e identificar permitem um trabalho com mais precisão do que com camadas OGR no QGIS.

Criando uma conexão armazenada

mActionAddLayer The first time you use a PostGIS data source, you must create a connection to the PostgreSQL database that contains the data. Begin by clicking on the mActionAddLayer Add PostGIS Layer toolbar button, selecting the mActionAddLayer Add PostGIS Layer... option from the Layer menu or typing Ctrl+Shift+D. You can also open the Add Vector Layer dialog and select radiobuttonon Database. The Add PostGIS Table(s) dialog will be displayed. To access the connection manager, click on the [New] button to display the Create a New PostGIS Connection dialog. The parameters required for a connection are:

  • Name: A name for this connection. Can be the same as Database
  • Service: Service parameter to be used alternatively to hostname/port (and potentially database). This can be defined in pg_service.conf
  • Host: Name of the database host. This must be a resolvable host name the same as would be used to open a telnet connection or ping the host. If the database is on the same computer as QGIS, simply enter ‘localhost’ here.
  • Port: Port number the PostgreSQL database server listens on. The default port is 5432.
  • Database: Name of the database.
  • SSL mode: How the SSL connection will be negotiated with the server. Note that massive speedups in PostGIS layer rendering can be achieved by disabling SSL in the connection editor. Following options are available:
    • desabilitar: apenas tentar uma conexão SSL não criptografada

    • permitir: tentar uma conexão não-SSL, se isso falhar, tente uma conexão SSL

    • preferir (por padrão): tentar uma conexão SSL, se isso falhar, tentar uma conexão não-SSL;

    • requer: só tentar uma conexão SSL.

  • Username: User name used to login to the database.
  • Password: Password used with Username to connect to the database.

Opcionalmente você pode ativar as seguintes caixas de seleção:

  • checkbox Salvar nome do usuário

  • checkbox Salvar Senha

  • checkbox Apenas olhar na tabela geometry_columns

  • checkbox :guilabel:`Apenas olhar no esquema ‘público’

  • checkbox Também listar tabelas sem geometrias

  • checkbox Usar metadados atribuidos da tabela

Uma vez que todos os parâmetros e as opções estão configuradas, você pode testar a conexão clicando no botão [Testar Conexão].

Dica

QGIS Configurações do Usuário e Segurança

Depending on your computing environment, storing passwords in your QGIS settings may be a security risk. Your customized settings for QGIS are stored based on the operating system:

  • nix, as configurações são armazenadas no arquivo .qgis/ em seu diretório home.

  • win, as configurações são armazenadas no registro.

Carregando uma camada PostGIS

mActionAddLayer Uma vez que você tem uma ou mais conexões definidas, você pode carregar as camadas do banco de dados PostgreSQL. Claro que isso exige ter dados no PostgreSQL. Consulte a Secção Importação de dados no PostgreSQL para entender sobre a importação de dados para o banco de dados.

Para colocar uma camada no PostGIS, execute os seguintes passos:

  • If the Add PostGIS layers dialog is not already open, click on the mActionAddLayer Add PostGIS Layer toolbar button.
  • Escolha a conexão a partir da lista drop-down e clique em [Conectar].

  • Marque ou desmarque checkbox Listar tabelas sem geometrias

  • Optionally use some checkbox Search Options to define which features to load from the layer or use the [Build query] button to start the Query builder dialog.
  • Encontre a camada(s) que deseja adicionar na lista de camadas disponíveis.

  • Selecione-a clicando sobre ela. Você pode selecionar várias camadas pressionando a tecla Shift enquanto clica. Consulte a Seção Ferramenta de Consulta para obter informações sobre como usar o Query Builder PostgreSQL para melhor definição da camada.

  • Clique no botão [Add] para adicionar a camada ao mapa.

Dica

Camadas PostGIS

Normalmente uma camada PostGIS é definida por um caminho na tabela. A partir da versão 0.9.0 em diante, o QGIS permite carregar camadas que não têm um caminho na tabela geometry_columns. Isto inclui ambas as tabelas e exibições. A definição de uma visão espacial fornece um meio poderoso para visualizar seus dados. Consulte o manual do PostgreSQL para obter informações sobre a criação de pontos de vista diversos.

Alguns detalhes sobre as camadas PostgreSQL

Esta seção contém alguns detalhes sobre como o QGIS acessa camadas do PostgreSQL. Na maioria das vezes o QGIS simplesmente deve fornecer-lhe uma lista de tabelas do banco de dados que podem ser carregadas, e carregá-las mediante solicitação. No entanto, se você tiver problemas para carregar uma tabela do PostgreSQL no QGIS, as informações abaixo podem ajudá-lo a entender as mensagens do QGIS e dar-lhe orientações para alterar a tabela de PostgreSQL ou ver definições para permitir o QGIS carregá-la.

O QGIS requer que as camadas PostgreSQL contenham uma coluna que pode ser usada como uma chave única para a camada. Para tabelas, isso geralmente significa que a tabela precisa de uma chave primária, ou uma coluna com uma restrição exclusiva sobre ela. No QGIS, esta coluna tem de ser do tipo int4 (um inteiro de 4 bytes). Alternativamente, a coluna ctid pode ser usada como chave primária. Se uma tabela não tem esses itens, a coluna oid será usado em seu lugar. O desempenho será melhorado se a coluna é indexada (note que as chaves primárias são automaticamente indexadas pelo PostgreSQL).

Se a camada PostgreSQL é um ponto de vista, a mesma exigência existe, mas as vistas não têm chaves primárias ou colunas com restrições exclusivas sobre ela. Neste caso o QGIS vai tentar encontrar uma coluna na vista que é derivada de uma coluna da tabela adequada. Ele faz isso ao analisar o ponto de vista de definição do SQL. No entanto, existem vários aspectos do SQL que o QGIS ignora, estes incluem o uso de apelidos da tabela e colunas que são gerados por funções SQL.

Se uma coluna adequada não for encontrada, o QGIS não irá carregar a camada. Se isto ocorrer, a solução é alterar o ponto de vista de forma que ele inclui uma coluna adequada (um tipo de int4 com uma chave primária ou com uma única restrição, de preferência, indexados).

Importação de dados no PostgreSQL

Data can be imported into PostgreSQL/PostGIS using several tools, such as the SPIT plugin, or the command line tools shp2pgsql or ogr2ogr.

Complemento SPIT

QGIS comes with a core plugin named spiticon SPIT (Shapefile to PostGIS Import Tool). SPIT can be used to load multiple shapefiles at one time and includes support for schemas. See Section Complemento SPIT for more information.

shp2pgsql

PostGIS includes a utility called shp2pgsql that can be used to import shapefiles into a PostGIS enabled database. For example, to import a shapefile named lakes.shp into a PostgreSQL database named gis_data, use the following command:

shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data

Isso cria uma nova camada chamada lakes_new no banco de dados gis_data. A nova camada terá um identificador de referência espacial (SRID) de 2964. Consulte a Seção Trabalhando com Projeções para mais informações sobre os sistemas de referência espacial e projeções.

Dica

Exportando conjuntos de dados do PostGIS

Assim como a ferramenta de importação shp2pgsql, há também uma ferramenta para exportar conjuntos de dados PostGIS como shapefiles: pgsql2shp. Este é enviado dentro de sua distribuição PostGIS.

ogr2ogr

Junto ao shp2pgsql e ao SPIT existe uma outra ferramenta para a insersão de dados geográficos no PostGIS: ogr2ogr. Esta é parte da instalação do GDAL.

Para importar um shapefile no PostGIS, faça o seguinte :

ogr2ogr -f "PostgreSQL" PG:"dbname=postgis host=myhost.de user=postgres \
password=topsecret" alaska.shp

Isto irá importar o shapefile alaska.shp para o banco de dados PostGIS postgis usando o usuário postgres com a senha topsecret no servidor myhost.de.

Note que o OGR deve ser construído com PostgreSQL para suportar PostGIS. Você pode ver isso digitando

ogrinfo --formats | grep -i post

Se você gosta de usar o comando PostgreSQL COPY em vez do método padrão INSERT INTO, você pode exportar a seguinte variável no ambiente (pelo menos disponível no nix e osx ):

export PG_USE_COPY=YES

O ogr2ogr não cria índices espaciais como faz o shp2pgsl. Você precisa criá-los manualmente, normalmente usando o comando SQL CREATE INDEX como um passo extra (como descrito na próxima seção melhorando o Desempenho).

melhorando o Desempenho

Retrieving features from a PostgreSQL database can be time consuming, especially over a network. You can improve the drawing performance of PostgreSQL layers by ensuring that a PostGIS spatial index exists on each layer in the database. PostGIS supports creation of a GiST (Generalized Search Tree) index to speed up spatial searches of the data (GiST index information is taken from the PostGIS documentation available at http://postgis.refractions.net).

The syntax for creating a GiST index is:

CREATE INDEX [indexname] ON [tablename]
  USING GIST ( [geometryfield] GIST_GEOMETRY_OPS );

Observe que para grandes tabelas, a criação do índice pode levar um longo tempo. Uma vez que o índice é criado, você deve realizar um VACUUM ANALYZE. Consulte a documentação do PostGIS (PostGIS-PROJECT Referências Bibliográficas e Web) para mais informações.

A seguir um exemplo de criação de um índice GiST:

[email protected]:~/current$ psql gis_data
Welcome to psql 8.3.0, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

gis_data=# CREATE INDEX sidx_alaska_lakes ON alaska_lakes
gis_data-# USING GIST (the_geom GIST_GEOMETRY_OPS);
CREATE INDEX
gis_data=# VACUUM ANALYZE alaska_lakes;
VACUUM
gis_data=# \q
[email protected]:~/current$

Camadas vetoriais que ultrapassam 180° de longitude

Many GIS packages don’t wrap vector maps, with a geographic reference system (lat/lon), crossing the 180 degrees longitude line (http://postgis.refractions.net/documentation/manual-1.4/ST_Shift_Longitude.html). As result, if we open such map in QGIS, we will see two far, distinct locations, that should show near each other. In Figure_vector_4 the tiny point on the far left of the map canvas (Chatham Islands), should be within the grid, right of New Zealand main islands.

Figure Vector 4:

../../../_images/vectorNotWrapping.png

Map in lat/lon crossing the 180° longitude line nix

A workaround is to transform the longitude values using PostGIS and the ST_Shift_Longitude function This function reads every point/vertex in every component of every feature in a geometry, and if the longitude coordinate is < 0° adds 360° to it. The result would be a 0° - 360° version of the data to be plotted in a 180° centric map.

Figure Vector 5:

../../../_images/vectorWrapping.png

Crossing 180° longitude applying the ST_Shift_Longitude function nix

Uso

  • Importar dados para o PostGIS (Importação de dados no PostgreSQL), utilizando, por exemplo, o complemento PostGIS Manager ou o complemento SPIT

  • Use a interface de linha de comando PostGIS para emitir o seguinte comando (este é um exemplo onde a “TABLE” é o nome real da sua tabela no PostGIS)

    gis_data=# update TABLE set the_geom=ST_Shift_Longitude(the_geom);

  • Se tudo correu bem, você deve receber uma confirmação sobre o número de feições que foram atualizadas, então você vai ser capaz de carregar o mapa, veja a diferença (Figure_vector_5)

Camadas SpatiaLite

mActionAddSpatiaLiteLayer A primeira vez que você carregar dados de um banco de dados SpatiaLite, comece clicando no botão mActionAddSpatiaLiteLayer :sup: Adicionar Camada SpatiaLite na barra de ferramentas ou selecione a opção mActionAddSpatiaLiteLayer :menuselection:’Adicionar Camada SpatiaLite ... no menu Camada ou digitando Ctrl+Shift+L. Isso fará com que surja uma janela, que permitirá você se conectar a um banco de dados SpatiaLite já identificado no QGIS, que você pode escolher no menu suspenso ou para definir uma nova conexão para um novo banco de dados. Para definir uma nova conexão, clique em [New] e use o navegador de arquivos para apontar para o banco de dados SpatiaLite, que é um arquivo com extensão .sqlite.

If you want to save a vector layer to SpatiaLite format you can do this by right clicking the layer in the legend. Then click on Save as.., define the name of the output file, select ‘SpatiaLite’ as format and the CRS. Also you can select ‘SQLite’ as format, and then add SPATIALITE=YES in the OGR data source creation option field. This tells OGR to create a SpatiaLite database. See also http://www.gdal.org/ogr/drv_sqlite.html.

QGIS also supports editable views in SpatiaLite.

Criando uma nova camada SpatiaLite

Se você quiser criar uma nova camada SpatiaLite, consulte a seção Criando uma nova camada SpatiaLite.

Dica

Gestão complementos de dados SpatiaLite

For SpatiaLite data management you can also use several Python plugins: QSpatiaLite, SpatiaLite Manager or DB Manager (core plugin, recommended). They can be downloaded and installed with the Plugin Installer.

MSSQL Spatial Layers

mActionAddMssqlLayer QGIS also provides native MS SQL 2008 support. The mActionAddMssqlLayer Add MSSQL Spatial Layer is part of the new toolbar button or available in the MS SQL node in the QBrowser tree, providing drag and drop import support.