Tenho recebido muitos e-mails de usuários do Portal ClickGeo questionando sobre como criar uma conexão do MapServer com o PostGIS, ou seja, visualizar uma tabela espacial no MapServer. Neste tutorial vou mostrar um exemplo de código representando o arquivo mapfile, (*.map) utilizado para definição de alguns parâmetros do que será visualizado no MapServer.
INTEGRAR MAPSERVER COM BASE DE DADOS POSTGIS
Os textos mostrados após o sinal # indicam que estes são apenas comentários e, portanto, não fazem parte do código.
Vamos ao código:
[sourcecode language=”html”]
MAP # Inicio do Mapfile
NAME ‘Municipios'
SIZE 600 400
EXTENT -38.77 -8.3 -34.79 -6.03
UNITS DD
IMAGECOLOR 200 254 199
LAYER # Início do Layer
NAME ‘Municipios'
STATUS Default
TYPE POLYGON
CONNECTIONTYPE postgis
CONNECTION “dbname=paraiba user=postgres host=localhost password=postgres”
DATA “the_geom FROM municipios USING UNIQUE gid USING SRID=4291″
CLASS # Início do parâmetro Class
NAME ‘Municipios'
STYLE # Início do parâmetro Style
COLOR 200 254 199
OUTLINECOLOR 0 153 0
END # Fim do parâmetro Style
END # Fim do parâmetro Class
END # Fim do parâmetro Layer
END # Fim do Mapfile
[/sourcecode]
Vamos destacar inicialmente o significado do trecho abaixo.
[sourcecode language=”html”]
LAYER # Início do Layer
NAME ‘Municipios' # Nome do Layer
STATUS Default # “Default” indica que o mapa será exibido.
TYPE POLYGON # Tipo de geometria contida na tabela espacial.
CONNECTIONTYPE postgis # Tipo da conexão.
CONNECTION “dbname=paraiba user=postgres host=localhost password=postgres”
DATA “the_geom FROM municipios USING UNIQUE gid USING SRID=4291”
[/sourcecode]
Para compreender melhor o significado do trecho mostrado acima, vamos “quebrá-lo”:
[sourcecode language=”html”]
CONNECTION # Parâmetro que define o início da conexão.
dbname=paraiba # Nome do banco de dados do PostGis.
user=postgres # Nome de Usuário.
host=localhost # Endereço da máquina onde está o banco.
password=postgres” # Senha de acesso ao banco.
DATA # Detalhes sobre o dado espacial.
“the_geom # Nome da coluna onde está armazenada a geometria.
municipios # Nome da tabela a ser visualizada.
SRID=4291” # Código de referência espacial para tabela.
[/sourcecode]
Vamos destacar inicialmente o significado do trecho abaixo.
[sourcecode language=”html”]
LAYER # Início do Layer
NAME ‘municipios' # Nome do Layer
STATUS Default # “Default” indica que, por padrão, o mapa será exibido.
TYPE POLYGON # Tipo de geometria contida na tabela espacial.
CONNECTIONTYPE postgis # Tipo da conexão.
CONNECTION “dbname=paraiba user=postgres host=localhost password=postgres”
DATA “the_geom FROM vias USING UNIQUE gid USING SRID=29185”
<pre>[/sourcecode]
CONNECTION # Parâmetro que define o início da conexão.
dbname=paraiba # Nome do banco de dados do PostGIS.
user=postgres # Nome de Usuário.
host=localhost # Endereço da máquina onde está o banco.
password=postgres” # Senha de acesso ao banco.
DATA # Detalhes sobre o dado espacial.
“the_geom # Nome da coluna onde está armazenada a geometria.
municipios # Nome da tabela a ser visualizada.
SRID=4291” # Código de referência espacial para tabela.
<pre>[/sourcecode]
Você pode baixar um shapefile com a divisão municial do Estado da Paraíba, afim de exercitar o que foi mostrado no tutorial acima. Fique à vontade para enviar suas dúvidas.
Leitura complementar:
4 respostas
ola, muito bom o exemplo mais eu gostaria de saber se tem um jeito de acessar os dados das tabelas porque dessa maneira aqui apareceu apenas como imagem com os dados inacessiveis
Tem sim Fábio, pelo modo de Query. Isso é um tema que ensinarei no curso online de MapServer que vou ministrar em breve.
[]’
Fala Anderson,
…cara, show de bola essa dica.
Tanto pelo cuidado em esclarecer a passar o macetes como pela generosidade de compartilhar esse conhecimento.
Quando puder, me indique um curso voltado para essas ferramentas. Tenho procurado. Gostaria de desenvolver aplicações com mapas, banco de dados e java, e tenho ainda dúvidas em relação quais seriam as ferramentas adequadas.
Abraço.
Olá Luciano, tudo bem?
Em breve estarei ministrando um curso online de MapServer. Divulgarei detalhes aqui no blog. Um abraço!