fbpx

Aplicação Delphi utilizando Google Maps – Google Maps Library

Aplicação Delphi acessando Google Maps

Neste artigo desenvolveremos uma aplicação em Delphi acessando o GoogleMaps através dos componentes da GMLib.

Necessidade de Localizar

Ao longo desses anos trabalhando no setor de  tecnologia e desenvolvimento de empresas do ramo de logística e distribuição de produtos farmacêuticos, sempre encontro a necessidade de implantar nas empresas pequenas soluções, capazes de automatizar e/ou otimizar processos, e geralmente essa necessidade exige velocidade na concepção das soluções, para isso não existe nada é mais rápido que o Delphi.

Com a popularização do Google Maps, o acesso a dados GPS, a geolocalização entra de vez no cotidiano das pessoas e com isso, de quebra acaba chegando também às empresas dos mais diversos tamanhos e ramos da economia. Imagine uma empresa que deseja visualizar a localização de seus clientes no mapa, plotar pontos onde vendeu determinados produtos. Pois bem, nessa postagem estaremos fazendo exatamente isso.

Para isso utilizaremos o Delphi e a suite de componentes livre que baixaremos através do link. Trata-se de um projeto ainda em versão beta mas muito satisfatório uma vez que nos proporciona agilidade no que se propõe.

Instalando o GMLib 

Feito o download, extraia os arquivos em um diretório a sua escolha. Abra seu Delphi, no meu caso estarei instalando no Delphi XE3, vá até o diretório onde extraiu os arquivos do GMLIB, lá localize e abra o arquivo GMLibProject_DXE3.groupproj. Delphi com Google Maps - GMLib

Note que o projeto foi carregado no project manager, selecione através de um duplo clique o pacote GMLib_DXE3.bpl, selecione a plataforma 32-bit Windows em Target Platform, clique com o botão direito sobre o arquivo GMLib_DXE3.bpl e selecione a opção Compile em seguida a opção Install. Repita esse procedimento para a plataforma 64-bit Windows e faça o mesmo para os demais pacotes (.bpl): GMLib_DXE3_VCL.bpl, GMLib_DXE3_FMX.bpl e GMLibEdit_DXE3.bpl.
Agora que foram compilados e instalados os componentes, precisamos apontar os diretorios em Library Path.

Delphi com Google Maps - GMLib

Vá em Tools –> Options –> Environment Options –> Delphi Options –> Library. No lado direito da tela selecione a 32-bit Windows para a plataforma, em Library Path clique no botão reticências […] navegue até a pasta onde você extraiu os arquivos do GMLib, localize a pasta libDXE3 e pressione OK em seguida Add. Faça o mesmo com as pastas libDXE3VCL e libDXE3FMX, vá agora até a pasta src e depois com as pastas srcVCL e srcFMX. Repita o procedimento para a plataforma 64-bit Windows e já podemos finalizar a instalação através do menu File –> Close All.

Conhecendo os componentes
Delphi com Google Maps - GMLib

Brevemente vamos fazer a apresentação dos compenentes que serão usados no nosso exemplo.

  • TGMMap é responsável por acionar o mapa propriamente dito, enfim é ele o responsável por projetar nosso mapa num TWebBrowser.
  • TGMMarker é o componente responsável por inserir marcadores no mapa relacionado.
  • TGMGeoCode é o componente que utilizaremos para receber o posicionamento (geolocalização).

Basicamente temos tudo o que iremos precisar para termos nosso mapa. Caso você queira se aprofundar mais na suite de componetes acesse o e consulte a documentação de todos os componentes da suite.

begin: Criando a interface

Com o Delphi aberto, vamos iniciar um novo projeto. Acesse  File–> New –> VCL Forms Application, vamos salvar nosso projeto, dê um Save All, no meu caso chamarei o projeto de ArtigoMapa, nosso formulário se chamará frmPrincipal e sua Unit será frmPrincipalUnt.
Adicione os componentes no nosso formulário, vamos precisar destes: um panel (com alinhamento alBotton), um WebBrowser (alinhamento AllClient), um ClientDataSet, um DataSource. Dentro do Panel, adicione um DBGrid e um DBNavigator. No ClientDataSet, clique com botão direito sobre ele e selecione a opção Fields Editor para que possamos criar a estrutura da nossa tabela.
Teremos basicamente 2 campos: Referência e Endereço. Com o Editor de Campos aberto clique sobre ele com o botão direito e acione a opção New Field para criarmos nosso primeiro campo. Altere a propriedade Name para Referencia, Type para String e Size para 30, em seguida clique em OK.

Delphi com Google Maps - GMLib

Repita o procedimento para criar o campo Endereco, este porém atribua 120 na propriedade Size. Com os dois campos já criados, feche o Editor de Campos e  vamos clicar com o botão direito sobre o ClientDataSet e vamos acionar a opção Create DataSet para criarmos o arquivo de dados. Vamos alterar a propriedade FileName do ClientDataSet, clicando sobre seu botão reticências […], para Referencia.xml.
Vamos agora ligar os componentes de acesso a dados… altere a propriedade DataSource do DBGrid e do DBNavigator apontando para o DataSource que inserimos (DataSource1). No nosso DataSource altere a propriedade AutoEdit para False e a propriedade DataSet apontando para o ClientDataSet (ClientDataSet1), com isso termos a parte de dados da aplicação pronta para rodar necessitando apenas de pequenos ajustes para a gravação de dados que veremos a seguir.

Até aqui tudo tranquilo, nenhuma novidade né? Vamos então a parte específica de nosso artigo, adicionaremos agora os componentes da Paleta GoogleMaps, insira no projeto um GMMap, um GMGeoCode, um GMMarker. Configuraremos esses componentes da seguinte forma: vamos alterar a propriedade Language de todos eles para PortuguesBR, no GMMap vamos alterar a propriedade IntervalEvents para 0 e a propriedade WebBrowser vamos apontar para o que temos no projeto (WebBrowser1), no GMMarker vamos alterar a propriedade Map apontando-a para nosso GMMap (GMMap1) e no GMGeoCode vamos alterar a propriedade Marker para que aponte para nosso GMMarker (GMMarker1).

Delphi com Google Maps - GMLib

Adicionando as funcionalidades

Para tudo fazer sentido vamos adicionar as funcionalidades básicas de nossa aplicação. No evento onActivate do frmPrincipal teremos:

procedure TfrmPrincipal.FormActivate(Sender: TObject);

begin

ClientDataSet1.Open;

end;

isso fará com que a aplicação abra o ClientDataSet possibilitando-nos inserir as referências e endereços a serem mapeados. Vamos executar a aplicação e confirmar o funcionamento… clique sobre o botão Adicionar (“+”) para adicionar registros em nossa aplicação, insira os registros e clique sobre o botão Postar (“V”) para gravar os registros. Os meus registros foram:

  • Engenhão | Estádio Olímpico João Havelange – Rua das Oficinas, Rio de Janeiro.
  • Maracanã | Estádio Mário Filho – Maracanã – Rua Professor Eurico Rabelo, Rio de Janeiro.
  • Fluminense F.C. | R. Álvaro Chaves, 41

Agora já temos dados para que o mapa exiba lugares conhecidos. Feche a aplicação e vamos agora inserir o código para efetuarmos a plotagem dos endereços no mapa efetivamente.

Plotando os endereços no mapa

Para que o mapa seja processado pela aplicação devemos no evento AfterPageLoaded do GMMap vamos inserir a seguinte linha:

procedure TfrmPrincipal.GMMap1AfterPageLoaded(Sender: TObject; First: Boolean);

begin

GMMap1.DoMap;

end;

 

Vamos agora atribuir ao evento onDblClick de nosso DBGrid a funcionalidade de exibir um marcador com o registro selecionado no mapa, para tal insira o código:

procedure TfrmPrincipal.DBGrid1DblClick(Sender: TObject);

begin

GMMap1.Active := True;

if DataSource1.DataSet.RecordCount > 0 then

begin

GMGeoCode1.Geocode(ClientDataSet1Endereco.AsString);

GMMarker1.Items[DataSource1.DataSet.Recno].CenterMapToMarker;

end;

end;

Basta agora executar e temos a aplicação cumprindo o seu propósito inicial, de maneira bem simples.

Delphi com Google Maps - GMLib
Você pode se aprofundar mais nos componentes e deixar sua imaginação cuidar do resto, vale ressaltar que o componente traz um aplicativo demo muito interessante que vale a pena dar uma olhada.

end;

,

Comente