domingo, março 02, 2008

Integrando o Mapserver com o PostGIS

Com base nos posts anteriores (1 e 2) podemos criar uma aplicação Webmapping que utilize dados armazenados em um BDE. Para este primeiro tutorial, os dados utilizados estão disponíveis neste link.

1. Carregando os sripts SQL no BDE.

No terminal, navegue até a pasta onde você salvou e descompactou os arquivos e digite: psql -f lotes.sql -d gis (enter), em seguida digite novamente psql -f vias.sql -d gis (enter), desta forma você criará duas tabelas no Banco, lotes e vias.


2. Criando o arquivo Mapfile:

Abra um editor de texto qualquer e digite o seguit
e conteúdo:

MAP
NAME 'Mapa 1'
SIZE 600 400
EXTENT 295090 9211971 296291 9212708

UNITS meters
IMAGECOLOR 247 247 247

LAYER
NAME 'lotes'

STATUS Default

TYPE Polygon
CONNECTIONTYPE postgis
CONNECTION "dbname=geo user=postgres host=localhost password=postgres"
DATA "the_geom FROM lotes USING UNIQUE gid USING SRID=29185"
CLASS
NAME 'lotes'
STYLE
COLOR 255 234 190
OUTLINECOLOR 0 0 0

END #style

END #class
END #layer

END #Fim do Mapfile



Salve este arquivo como postgis.map em seguida feche-o.

3. Visualizando o mapa de forma estática

Abra Browser e digite: http://localhost/cgi-bin/mapserv?map=/var/www/postgis.map&mode=map

Como resultado será exibido o mapa da figura abaixo:



4. Adicionando a camada vias, diferenciado-a por tipo de pavimento

Altere o Mapfile, adicionando as linhas mostradas em vermelho, a seguir:

MAP

NAME 'CTM'
SIZE 600 400
EXTENT 295090 9211971 296291 9212708
UNITS meters
IMAGECOLOR 247 247 247

# Símbolo criado para mudar a espessura dos arcos (camada vias)
SYMBOL
NAME 'linha'
TYPE ELLIPSE
POINTS
1 1
END
END


LAYER
NAME 'lotes'
STATUS Default
TYPE Polygon
CONNECTIONTYPE postgis
CONNECTION 'dbname=gis user=marcello host=localhost password=x'
DATA 'the_geom FROM lotes'
CLASS
NAME 'lotes'
STYLE
COLOR 255 234 190
OUTLINECOLOR 0 0 0
END #style
END #class
END #lotes

#Aqui começa o segundo layer
LAYER
NAME 'vias'
STATUS Default
TYPE Line
CONNECTIONTYPE postgis
CONNECTION "dbname=gis user=marcello host=localhost password=x"
DATA "the_geom FROM vias USING UNIQUE gid USING SRID=29185"

CLASSITEM 'pavimentac'

CLASS
NAME 'Asfalto'
EXPRESSION 'Asfalto'
STYLE
SYMBOL linha
SIZE 3
COLOR 168 0 0
END #style
END #class

CLASS
NAME 'Paralelepípedo'
EXPRESSION 'Paralelepípedo'
STYLE
SYMBOL linha
SIZE 2
COLOR 0 38 115
END #style
END #class

CLASS
NAME 'Solo'
EXPRESSION 'Solo'
STYLE
SYMBOL linha
SIZE 1
COLOR 255 85 0
END #style
END #class

END #vias

END #Fim do Mapfile


Abra o browser novamente, digite a mesma URL anterior e observe a nova camada criada: