De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Quer migrar o MapZoom para a versão 3 da Google Maps API?

Colaboração: Cesar Brod

Data de Publicação: 17 de janeiro de 2014

Em função da migração para novos servidores e do anúncio do final do suporte da versão 2 da Google Maps API, a BrodTec não mais manterá ativo o site com a demonstração do aplicativo MapZoom, a não ser que alguma boa alma voluntária concorde em fazer a migração, recebendo todos os devidos créditos da autoria deste trabalho e, de quebra, os livros Scrum - Guia Prático para Projetos Ágeis e Aprenda a Programar - A arte de ensinar o computador.

Para quem não lembra, o MapZoom foi o projeto de graduação em Engenharia da Computação de minha sócia, a Joice Käfer, em 2008, para o qual tentamos, posteriormente, obter verbas para transformá-lo em um sistema de gestor de conteúdo web cuja principal interface com o usuário seriam mapas na web. A ideia era facilitar a construção de portais cujas principais fontes de informação fossem georreferenciadas. Mesmo não conseguindo a tal verba, ainda mantemos o portal, com o código-fonte totalmente aberto, para que qualquer interessado pudesse aprender a partir do que foi desenvolvido. Claro, de 2008 para cá muita coisa evoluiu...

Se você não tem a mínima ideia do que é PostGis (em resumo, é a extensão que permite que o gerenciador de banco de dados PostgreSQL trabalhe com objetos espaciais - aqueles aos quais você acessa usando latitudes e longitudes), recomendo que você leia o trabalho da Joice, uma bela introdução à construção de aplicações baseadas em mapas na web e ainda bastante atual.

Se você usa uma distribuição baseada em Debian, as dicas a seguir devem ajudá-lo na "partida".

A primeira coisa a ser feita é garantir que você tem todos os pacotes necessários instalados. Faça isso com o seguinte comando:

  apt-get install apache2 php5 postgresql postgis postgresql-9.1-postgis

Aceite todos os prerrequisitos que forem oferecidos respondendo S (ou Y se sua instalação estiver em inglês). Alguns dos pacotes podem já ter sido instalados, por padrão, em sua distribuição.

Dica: Caso seu sistema não encontre um ou mais dos pacotes a serem instalados, primeiro certifique-se de que ele está acessando a internet, por exemplo, executando o comando ping direcionado a um site que você sabe que existe:

  ping www.google.com

Se esse comando não funcionar, você tem problemas com a sua configuração de rede e, então, deve procurar resolvê-los antes de seguir adiante. Caso o comando ping tenha funcionado, pode ser que você não tenha todas as fontes de pacotes disponíveis em seu arquivo /etc/apt/sources.list. Verifique seu conteúdo com qualquer editor de textos, ou com o comando cat:

  cat /etc/apt/sources.list

Ali você deve ter uma dica de qual é a versão do Debian na qual sua distribuição está baseada. A mais recente, até a escrita desse artigo, é a wheezy. Acesse o site http://debgen.simplylinux.ch/ e gere as entradas apropriadas para o seu sistema (selecione as fontes Main, Contrib, Security e Updates) e edite apropriadamente seu arquivo /etc/apt/sources.list para incluir as que, eventualmente, estiverem faltando (não deixe de, antes disso, fazer uma cópia de seu arquivo original). Faça um teste para ver se o servidor apache está funcionando, acessando seu servidor, preferencialmente de uma outra máquina, através de um navegador onde você colocará, na barra de endereços, algo do tipo:

  http://xxx.xxx.xxx.xxx

(onde xxx.xxx.xxx.xxx) é o endereço IP da máquina onde você está instalando o PostGis e seus prerrequisitos. O apache2 não é, necessariamente, prerrequisito do PostGis, mas você irá usá-lo ao instalar o MapZoom para testar completamente o seu ambiente.

Dica: Caso você não tenha experiência com a instalação de máquinas virtuais, comece por esse artigo.

Agora, vamos preparar o ambiente, criando uma base de dados chamada gis e habilitando-a para o uso das extensões espaciais.

  su postgres
  cd
  createdb gis
  createlang plpgsql gis
  psql -d gis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
  psql -d gis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql

Supondo que você não teve nenhum erro nas etapas anteriores (ou que teve, mas conseguiu resolvê-los), a lista de comandos acima deve ter se completado sem problemas. Para testar, porém, vamos carregar a nossa base de dados gis com alguns dados georreferenciados e usá-la para alimentar o aplicativo MapZoom em sua máquina. Para isso, baixe os fontes do MapZoom a partir deste link e descompacte-os com o seguinte comando:

  tar -xzvf mapzoom_16_07_2009.tgz

Dentre os arquivos descompactados, você deve encontrar a pasta sql. Ainda como o usuário postgres (lembre-se do comando su postgres que você executou), popule sua base de dados com os arquivos que estão nessa pasta.

  psql -d gis < facilidades.sql
  psql -d gis < bairros.sql
  psql -d gis < imoveis.sql

Importante: Você deve configurar uma senha para o seu usuário postgres. Isso não é feito automaticamente pelo processo de instalação. Para isso, siga os seguintes passos (o que está depois do # são apenas comentários):

  su postgres # esse comando não é necessário se você ainda não voltou ao usuário root
  psql # levará você ao prompt de comando do PostgreSQL
  postgres=# alter user postgres password 'novasenha';
  ALTER ROLE
  postgres-# \q # para sair do prompt de comando do PostgreSQL

Pressione simultaneamente as teclas Control e D para retornar ao usuário root.

Se você colocar os arquivos que estão dentro da pasta mapzoom no diretório raiz de seu servidor web (tipicamente /var/www) você já deve conseguir ter o acesso a aplicação, ainda não funcional, ao acessar o seu servidor através de seu endereço IP (como no teste que você fez para testar se o apache estava funcionando). Ajuste o arquivo conecta.php para que ele corresponda a seu ambiente (em especial, coloque a senha de acesso para o PostgreSQL).

Um bom guia de migração entre as versões 2 e 3 da Google Maps API pode ser encontrado nesse link.

Não deixe de comentar o código e também de atualizar os arquivos INSTALL, CHANGELOG e README para incluir seu nome e outras referências que desejar.

No mínimo, esse é um projeto de férias bacana se você quer começar a criar aplicações baseadas em mapas na web!

A desenvolvedora original do MapZoom é a Joice Käfer.

Cesar Brod ministra cursos in-house adequados à necessidade de sua empresa, além de atuar como coach de equipes ágeis. Visite nosso portal para saber mais ou entre em contato diretamente com o autor para mais informações.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Cesar Brod