Importando dados espaciais para Postgis com OGR
Seguindo o fluxo de trabalho utilizando dados espaciais e BD com Postgis, uma pergunta bastante pertinente é: como eu faço para jogar meu shapefile, geopackage e afins para dentro de um banco de dados?
A forma que eu encontrei, que é um tanto simples, é utilizando OGR2OGR, que faz parte do GDAL. Muito provavelmente você também consegue fazer esse procedimento de importação utilizando outros métodos, como no QGIS e usando Python. Então vamos aos exemplos, que são construídos em ambiente Linux (PopOs 20.04 — baseado em Ubuntu), e banco de dados PostgreSQL:
Importando Geopackage
ogr2ogr -f "PostgreSQL"
PG:"host=localhost port 5432
dbname=nomedobanco
user=nomeusuario password=suasenha"
arquivo.gpkg
Nesse exemplo e nos que virão a seguir, vamos levar em consideração que a porta sempre será a 5432, mas pode mudar conforme sua configuração inicial. Também parto do pressuposto que você está rodando o terminal dentro da pasta em que se encontram seus arquivos.
Importando Shapefile
ogr2ogr -f "PostrgreSQL"
PG:"host=localhost port=5432
dbname=nomedobanco
user=nomedousuario password=suasenha"
-nln nome_da_camada
-nlt tipo_da_camada
-lco GEOMETRY_name=geom
-lco FIG=gid
-lco PRECISION=no
camada.shp
- -nln (new-layer-name): nome da nova camada; configura o nome da tabela de acordo com o nome que você especificar.
- -nlt (new-layer-type): tipo da nova camada; É preciso dizer qual tipo de geometria, se é Polygon ou MultiPolygon, já que as vezes o arquivo pode ser multiparte.
- -lco (layer-creation-option): opções de criação da camada; Arquivos espaciais com diferentes extensões tem diferentes formas de serem criados.
> GEOMETRY_NAME: define o nome da coluna que contém informações da geometria
> FID: determina o nome da coluna com as chaves primárias.
> PRECISION: controla quantos campos numéricos são apresentados no banco de dados.
Fontes
How to create a world-wide PostgreSQL database of administrate regions
How to import geopackages into Postgres/Postgis database?