Académique Documents
Professionnel Documents
Culture Documents
Uma revista que vai mudar os seus conceitos sobre geotecnologia. Número: 0.1
16 de agosto de
GeoLivre.org.br 2007
Tutorial ●●●●●●●●●●
Saiba os segredos da
compilação do MapServer Links Úteis
com todos os recursos MapServer Brasil:
avançados na distribuição http://br.group.yahoo.com/mapser
Fedora. Compreenda as ver – maior grupo de discussão, em
funcionalidades de cada língua portuguesa, voltado para
biblioteca e saiba como geotecnologias livres.
garantir uma instalação Portal GeoLivre:
estável numa das mais www.geolivre.org.br – portal
populares distribuições dedicado a disseminação de
Linux. geotecnologias livres.
O conteúdo desta revista está licenciado de acordo com a licença Creative Commons: Atribuição, Uso Não-comercial e Compartilhamento pela Mesma
Licença. As traduções seguem o licenciamento de acordo com o artigo na língua original.
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
2 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
Notícias do GeoLivre.org.br
gvSIG ganha inúmeros módulos com o projeto pela empresa OpenGEO. O projeto está em
SEXTANTE fase inicial, mesmo assim tem sido baixado por
usuários do mundo inteiro e atraído a atenção
O projeto SEXTANE
(http://www.sextantegis.com/) turbinou o gvSIG de profissionais interessados em soluções
com um conjunto de 161 extensões (plug-ins). baseadas em tecnologias e padrões abertos.
Agora o gvSIG passa a ser um concorrente de A revista está disponível para download
peso na área de Desktop GIS apresentando gratuito:
recursos superiores aos principais sistemas http://gisdevelopment.net/magazine/years/200
proprietários. Cada vez mais, a aquisição de 7/april/GISDEV_april2007.pdf
licenças para projetos de Geoprocessamento
passa a ser considerada um desperdício de Google cria projeto para repositório de scripts
dinheiro. para o GMap
O Google cria projeto que visa estruturar um
Nova versão do gvSIG (1.0.2) repositório de scripts para o GMap. Com isso,
Já está disponível para download a nova será possível centralizar diversos componentes
versão do gvSIG (http://www.gvsig.gva.es) que estão sendo desenvolvidos sobre o API do
com correções de bugs e novos recursos. GMap.
Entre as melhorias, está o aprimoramento do Com esta inciativa do Google, a comunidade
suporte ao formato DWG, facilitando a poderá ter acesso a novos componentes para
integração com projetos relacionados com o atender aplicações mais específicas que não
CAD. estão implementadas no kernel do API do
GMap.
Projeto brasileiro é destaque na mais Mais informações podem ser consultadas no
importante revista de GIS da Ásia link: http://code.google.com/p/gmaps-utility-
O projeto Open 3D GIS que é conduzido por library/
desenvolvedores brasileiros (Helton Uchoa,
Paulo Roberto, Luiz Coelho e Luigi Cardeles) Criada lista da OSGeo Brasil
ganhou destaque na GIS Development Já está disponível a lista do capítulo brasileiro
(www.gisdevelopment.net). Esta revista é da OSGeo. Todos os interessados em participar
publicada na Índia e circula no continente desta lista podem acessar o link:
asiático e africano. O Open 3D GIS http://lists.osgeo.org/mailman/listinfo/brasil
(www.open3dgis.org) é um projeto que integra
conceitos modernos de GIS e tecnologias Também existe um wiki com informações
abertas para criar uma solução Web 3D GIS iniciais do capítulo brasileiro no link:
totalmente livre. Este projeto é patrocinado http://wiki.osgeo.org/index.php/Brasil
3 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
4 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
20 cm
5 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
6 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
Sistema combina Tecnologia Open Source e melhorias para o sistema permitirão usuários
Proprietária para atingir as necessidades da autorizados a corrigir erros de geocodificação
cidade. ao mover pontos de árvores para lugares mais
acurados. Ao sobrepor uma imagem de
Os atributos e os dados espaciais pontuais das
satélite ao mapa, usuários podem achar uma
árvores são ambos armazenados num servidor
discrepância entre uma árvore geocodificada
Microsoft SQL. Os atributos são acessados
e sua localização real numa imagem de
usando ASP.NET C#, enquanto as locações de
satélite.
pontos são mapeadas diretamente a partir da
base de dados usando a tecnologia Open
Source FDO do MapGuide Open Source. O
pessoal de BUF e FUF que já conhece a
plataforma Microsoft não precisa de
treinamento adicional para manter o sistema.
Ao mesmo tempo, BUF e FUF reconheceram
que o desenvolvimento da solução no
ambiente de aplicação .NET poderia contribuir
para o conhecimento sobre desenvolvimento
de aplicativos a código aberto pela indústria
geoespacial. O projeto está aproveitando
outros esforços da comunidade de código
aberto também. Como a cidade usa MrSID
para compressão de imagens de satélite, a
equipe do projeto de mapeamento de
florestas urbanas usou a extensão raster do Figura 1: O sistema de mapeamento urbano
MapGuide, criada por Frank Warmerdam para florestal de San Francisco mapeia rapidamente
dar suporte a tal formato proprietário. as árvores de todas as organizações
responsáveis, baseando-se numa busca por
Os dados espaciais das florestas urbanas e os
endereços.
detalhes do inventário são combinados com a
base cartográfica (de San Francisco) de ruas,
lotes, tipos de solo e outros mapas para criar Regras de lógica e negócios foram
um mapa baseado na web e interativo. O programadas usando ASP.NET C# para definir e
projeto também ofereceu uma boa controlar a atividade das aplicações de
oportunidade para tirar vantagem da acordo com o usuário, o papel do usuário e
performance do aplicativo obtida ao se usar o para rastrear o histórico de edição. Enquanto
formato SDF do MapGuide Open Source – um todos os usuários dividem alguma
formato espacial de arquivo desenvolvido para funcionalidade ao trabalhar com a aplicação,
ambientes via web. As camadas de base, que outros usuários autorizados têm maior
requerem menos atualizações que os pontos funcionalidade a eles oferecida. Por exemplo,
das árvores, são armazenadas como arquivos usuários do público geral podem realizar
SDF, enquanto informações de árvores, mais buscas em florestas urbanas, observando
dinâmicas, são geocodificadas e armazenadas dados de árvores de acordo com vários
numa base de dados. Ao fazê-lo, torna-se critérios (por exemplo: endereço, vizinhança e
possível que outras aplicações na organização espécies). O público em geral pode também
acessem os dados das árvores e façam realizar zoom, pan e seleção de vistas para
atualizações. Tais atualizações são então vistas exibição, além de adicionar árvores com
em tempo real no aplicativo web. Futuras informações relevantes, tais como: endereço,
7 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
8 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
9 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
10 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
Uma vez um prefeito me perguntou por que ele “clássico”). Este diretor, com o qual conversei,
precisaria me contratar para implantar um informou que não tinha verba para investir em
banco de dados geográfico se todas as consultoria e que nós tínhamos que apresentar
informações sobre a cidade dele já estavam um produto, ou seja, um “pacote”. Pensar em
no Google Earth. Uma questão realmente “pacote” é outro fator que frequentemente
interessante; o que você responderia? Em leva ao fracasso da solução de
resumo, tive que explicar que não adianta ter geoprocessamento, pois não é um produto
acesso a um grande conjunto de informações que, por “um passe de mágica”, fará tudo
se elas não estão organizadas de forma a funcionar. O sucesso depende de um enorme
otimizar os processos da instituição. Um grande trabalho de modelagem e aperfeiçoamento
repositório de dados que não esteja integrado dos processos e sistemas.
aos processos pode acabar caindo no Podemos concluir de tudo isso, que existe uma
esquecimento e isto tem sido um dos motivos grande carência de profissionais com
da falência dos projetos de capacidade de entenderem o real benefício
“geoprocessamento”. do geoprocessamento no contexto da
Este é um problema que ocorre também em otimização de processos numa instituição. O
grandes corporações privadas que se enfoque dos cursos atuais levam a uma
preocupam, muitas vezes, em implantar um formação com base tecnológica normalmente
ERP (Enterprise Resource Planning), mas tratam direcionada a um produto específico,
o geoprocessamento como um “setor/módulo” deixando de lado, fatores importantes em
a parte. Eu já tive uma reunião com um Diretor projetos corporativos como a definição de
de TI de uma grande empresa de padrões e a modelagem de processos com
telecomunicações que, ao saber que eu inteligência espacial.
desejava conversar sobre geoprocessamento, Somente veremos um grande salto na
ele informou que sabia que possuía isso, mas qualidade dos projetos de
não sabia dar detalhes, por isso chamou a “geoprocessamento” quando tivermos cursos
pessoa encarregada do “setor”. Ora, numa estruturados no formato de MBA, ou seja, com
empresa de telecomunicações, o enfoque gerencial. Por enquanto, temos que
geoprocessamento deveria estar integrado a continuar acompanhando esta “metamorfose
praticamente todos os sistemas corporativos: ambulante” que é o mercado de
marketing, vendas, atendimento ao cliente, geotecnologia para não perdermos o “bonde
gerencia de recursos tecnológicos (rede de da história”.
transmissão), gerência de recursos humanos,
etc. Se realmente existe esta integração, o Autor:
pessoal de TI estaria com o total domínio do Helton Nogueira Uchoa
geoprocessamento, pois não existiria uma
Engenheiro Cartógrafo formado no IME, atualmente é
“fronteira” separando uma base tecnológica consultor da OpenGEO e membro do conselho da
da outra. Ou seja, até nas grandes empresas Fundação Open Source GeoSpatial.
privadas, o geoprocessamento é tratado de uchoa@opengeo.com.br
maneira totalmente equivocada (conceito
?
Se a resposta for “a”,
O que o seu projeto de a) Corporativo fale com os nossos
b) Caro consultores.
Geoprocessamento quer c) Complexo (21) 2518-6233
ser quando crescer d) Ineficiente (21) 2283-1235
www.opengeo.com.br
11 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
Introdução
Quando se trabalha desenvolvendo soluções Depois de analisado o caso, os Engenheiros da
corporativas que irão envolver sistemas de OpenGEO chegaram às seguintes conclusões:
missão crítica, o projeto simplesmente não A) O prazo era curto demais e qualquer
pode falhar. O planejamento e a estratégia de problema durante a execução do
implantação necessitam ser minuciosamente mesmo, resultaria em atraso inevitável.
estudados. Exatamente neste contexto, o Esta informação foi passada para o
projeto SIGO (Sistema Integrado de Gestão cliente para que ele tivesse a
Operacional) foi apresentado aos Engenheiros consciência da existência deste risco;
da OpenGEO para o desenvolvimento do
módulo de GIS. B) Para se conseguir espacializar os dados
em tempo real, a base deveria estar
Os requisitos/exigências iniciais apresentados geocodificada, ou seja, todos os
pelo cliente foram: seguimentos de arruamentos deveriam
1) O prazo para desenvolvimento era de 6 possuir, no mínimo, número inicial e final
dias (o projeto tinha que ficar pronto a de cada lado da rua. A base obtida na
tempo de ser demonstrado num evento Prefeitura de Campo Grande atendia a
de Segurança Pública que iria ocorrer esta especificação;
em 6 dias); C) A arquitetura utilizada iria ser composta
2) Rodar em plataforma Windows 2003 pelo PostgreSQL/PostGIS e pelo
Server com IIS; MapServer, porém, algum “framework”
deveria ser utilizado para acelerar o
3) Rodar com servidor Zend (PHP);
desenvolvimento da aplicação visando
4) Possuir performance compatível com os cumprir o prazo. Neste caso, a opção foi
demais módulos do sistema, ou seja, pelo Chameleon, que na realidade se
processar em tempo real (retorno em constitui num conjunto de componentes
poucos segundos) um grande volume de (“widgets”) que podem ser utilizados
informações; para o rápido desenvolvimento de
5) O módulo GIS deveria se integrar de aplicações com o MapServer. O SIGO
maneira transparente ao restante do utilizava o MS SQL Server para
sistema, com interface 100% Web armazenamento dos dados e a inclusão
(código em PHP); do PostgreSQL iria resolver 2 problemas:
(1) Iria possibilitar a construção de
6) A principal função desta primeira versão análises espaciais através do módulo
do módulo GIS seria espacializar os PostGIS, tendo em vista que o MS SQL
eventos relacionados a Segurança Server não possuía módulo equivalente.
Pública armazenados pelo SIGO, (2) Iria evitar que as instabilidades no MS
gerando mapas temáticos em tempo SQL Server que, por ventura, ocorressem
real; no futuro fossem relacionadas ao módulo
7) Todo o desenvolvimento deveria ser de GIS, ou seja, isto evitaria que a
baseado em FOSS (Free and Open OpenGEO fosse “culpada” por esta
Source Software) evitando qualquer tipo instabilidade;
de custo de licenciamento.
12 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
nova_rua | rua
--------------------------------------+----------------------------------------
JOAQUIM NABUCO | R JOAQUIM NABUCO
OVIEDO | R OVIEDO
CONSOLACAO | AV CONSOLACAO
CASALVASCO | TV CASALVASCO
COLORADO | R COLORADO
LIMA | R LIMA
| VE
| VE
TEOFILO OTONI | R TEOFILO OTONI
CINCO | AV CINCO
13 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
ACARA | TV ACARA
CURIO | R CURIO
EW TRES | EST EW TRES
URUANA | R URUANA
CORSIGUA | R CORSIGUA
MARAJOARA | R MARAJOARA
JEQUITA | R JEQUITA
FRANCISCA GONCALVES FIGUEIREDO | R FRANCISCA GONCALVES FIGUEIREDO
FRANCISCA GONCALVES FIGUEIREDO | R FRANCISCA GONCALVES FIGUEIREDO
FRANCISCA GONCALVES FIGUEIREDO | R FRANCISCA GONCALVES FIGUEIREDO
FRANCISCA GONCALVES FIGUEIREDO | R FRANCISCA GONCALVES FIGUEIREDO
CRUZ DE LORENA | AV CRUZ DE LORENA
Código 1 – Exemplo de expressão regular no PostgreSQL
3º Dia pouco do poder do PostgreSQL combinado
com o PostGIS. Na listagem apresentada, a
Depois de preparar a base de logradouros
função recebe o nome da rua (avenida,
(arruamentos) da PCG, chegou a hora dos
travessa, etc) e o número onde ocorreu o
algoritmos para geocodificar os eventos
evento e retorna a coordenada X do mesmo.
através do endereço, ou seja, temos que
A obtenção da coordenada Y segue a mesma
“transformar” o endereço numa coordenada
(X e Y). Para isso, utilizamos algumas funções do lógica. Os atributos “fromleft”, “toleft”,
PostGIS dentro do próprio código Pl/PgSQL. No “fromright” e “toright” representam as
numerações iniciais e finais do lado esquerdo e
algoritmo a seguir, podemos observar um
direito do logradouro respectivamente.
CREATE FUNCTION x_geocode(rua varchar, numero int) RETURNS DOUBLE PRECISION AS $$
DECLARE
gid_geom eixo_ruas3.gid%TYPE := -1;
my_toleft eixo_ruas3.toleft%TYPE;
my_toright eixo_ruas3.toright%TYPE;
my_fromleft eixo_ruas3.fromleft%TYPE;
my_fromright eixo_ruas3.fromright%TYPE;
my_x DOUBLE PRECISION;
p1 DOUBLE PRECISION;
p2 DOUBLE PRECISION;
p3 DOUBLE PRECISION;
p4 DOUBLE PRECISION;
BEGIN
-- identifica se o numero entrado e par ou impar para depois identificar o segmento
IF (numero % 2 = 0) THEN
SELECT INTO gid_geom gid FROM eixo_ruas3 as r WHERE rua=r.rua1 AND ((numero > r.fromleft
AND numero < r.toleft AND r.toleft % 2 = 0) OR (numero > r.fromright AND numero < r.toright AND
r.toright % 2 = 0));
ELSE
SELECT INTO gid_geom gid FROM eixo_ruas3 as r WHERE rua=r.rua1 AND ((numero > r.fromleft
AND numero < r.toleft AND r.toleft % 2 = 1) OR (numero > r.fromright AND numero < r.toright AND
r.toright % 2 = 1));
END IF;
-- calcula parciais
SELECT INTO my_toleft toleft FROM eixo_ruas3 WHERE gid=gid_geom;
SELECT INTO my_toright toright FROM eixo_ruas3 WHERE gid=gid_geom;
SELECT INTO my_fromleft fromleft FROM eixo_ruas3 WHERE gid=gid_geom;
SELECT INTO my_fromright fromright FROM eixo_ruas3 WHERE gid=gid_geom;
-- calcula a regra de tres
IF (numero % 2 = my_toleft % 2) THEN
IF (my_toleft-my_fromleft != 0) THEN
SELECT INTO p1 my_toleft-numero;
SELECT INTO p2 my_toleft-my_fromleft;
SELECT INTO p3 p1/p2;
SELECT INTO p4 1-p3;
SELECT INTO my_x X(line_interpolate_point ((select the_geom from eixo_ruas3 as r
where r.gid=gid_geom),p4));
14 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
END IF;
ELSE
IF (my_toright-my_fromright != 0) THEN
SELECT INTO p1 my_toright-numero;
SELECT INTO p2 my_toright-my_fromright;
SELECT INTO p3 p1/p2;
SELECT INTO p4 1-p3;
SELECT INTO my_x X(line_interpolate_point ((select the_geom from eixo_ruas3 as r
where r.gid=gid_geom),p4));
END IF;
END IF;
RETURN my_x;
END;
$$ LANGUAGE plpgsql;
Código 2 – Algoritmo (Pl/PgSQL) de geocodificação (cálculo da coordenada X)
Em resumo, este algoritmo faz uma regra de O primeiro mapa é apenas um conjunto de
três simples combinada com a função do pontos indicando a localização dos eventos,
PostGIS line_interpolate_point para determinar ou seja, basta armazenar a saída dos
a coordenada X da posição do evento. Como algoritmos de geocodificação em uma tabela
resultado, em poucas linhas, fazemos uma de pontos e depois passar para o MapServer
operação relativamente complexa se tornar apresentar, trivial.
trivial. Depois de algum tempo configurando os
4º Dia arquivos do Chameleon para preparação da
interface gráfica com o usuário, finalizamos o
Passamos da metade do projeto e chegou a
primeiro mapa. Na figura a seguir, é possível
hora de colocar o MapServer para funcionar.
observar o resultado.
15 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
Na figura 2, podemos ver o mapa temático Para variar, a Lei de Murphy que não havia
que procuramos. atuado nos dias anteriores, deixou para
aparecer exatamente no último dia: a DLL do
6º Dia
MapServer apresentou algum tipo de
No último dia do prazo estabelecido pelo incompatibilidade com a combinação do
cliente, temos que integrar os componentes IIS+Zend. A solução mais rápida foi colocar o
desenvolvidos ao SIGO e colocar tudo para Apache numa outra porta e alternar o controle
funcionar no ambiente de produção. do sistema do IIS+Zend para o Apache no
16 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
17 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
18 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
$ make
Instalando a PROJ4 $ make install (executar como root)
Estra biblioteca é responsável pelo tratamento
das projeções no MapServer e em diversos To be continue...
outros softwares livres e proprietários.
[$ tar xvzf proj-4.5.0.tar.gz Na próxima edição, continuaremos com o
$ cd proj-4.5.0 tutorial dando seqüência com a instalação do
$ ./configure
$ make
PostgreSQL.
$ make install (executar como root)
19 de 20
GeoZine – nº 0.1 – 16/08/2007
Uma revista que vai mudar os seus conceitos sobre geotecnologia
20 de 20