Artigos em Destaque

Erros Clarion WSLDIAL 01, 02, 03 ou 04 Clarion WSLDIAL 01, 02, 03 ou 04 erros Estes são erros internos do programa. Nota para programadores WSLDIAL erro 01 pode ser: - Uma variável de tela ou relatório está faltando um? na frente...

Readmore

Função SQL Server para Converter Data/Hora em números... Os campos Data em Clarion são armazenados como o número inteiro (LONG) de dias de 28 de dezembro de 1800. E campos Hora em Clarion são o número de 1 / 100 segundos a partir da meia-noite + 1. Algumas...

Readmore

Integrando PHP com Flex usando XML Aprenda a integrar PHP com Flex usando XML. Este vídeo mostra como criar um script PHP que pode pegar dados de um banco de dados MySQL e gerar XML que o Flex pode facilmente ler e analisar. (Em inglês) Fonte:...

Readmore

Como usar Google Maps no Clarion O fabuloso Google, com suas facetas e interatividade Web 2.0: "O que seríamos, nós simples mortais, sem o Google?", pergunto. Dentre vários serviços oferecidos pelo Google, um o qual considero bastante...

Readmore

Meu primeiro Post! Um pouco sobre mim. Tenho 28 anos. Trabalho com TI desde que me conheço por gente. Nasci em Curitiba-PR, mas com 3 anos fui para Goioerê-PR. Atualmente resido em Maringá-PR, com minha esposa e duas filhas. Meu primeiro...

Readmore

  • Anterior
  • Proximo

Como usar Google Maps no Clarion

Publicado em: 04-03-2010 | Por: Adriano Santos | Em: Clarion

Tags:, , ,

1

Google Maps

O fabuloso Google, com suas facetas e interatividade Web 2.0: “O que seríamos, nós simples mortais, sem o Google?”, pergunto.

Dentre vários serviços oferecidos pelo Google, um o qual considero bastante facinante é o Maps.

No início, acredito eu, nossas principais tarefas, foram: ver nossa casa, nossa faculdade, nosso local de trabalho, nossa cidade, nossos amigos, sem falar nas viagens impressionantes por pontos famosos do mundo, sem se quer sair da cadeira. Após este primeiro processo, nossas mentes se abre, e conseguimos enxergar mais longe, e ir além do que esta ferramenta realmente nos oferece.

Pensando nisso, criei um serviço para meus clientes, onde usuários do meu sistema ERP HM Gerencial, conseguem facilmente consultar os endereços de seus colaboradores diretamente no Mapa, com apenas um único clique.  Fazer entregas, cobranças, visitas, tudo fica mais fácil, quando se tem a um único clique o endereço exato de seus colaboradores.

Este Post, não visa debater a API Google Maps, pelo contrário, o título deveria ser “Como usar o Google Maps, para quem não entende nada da API Google Maps”. Aqui pretendo mostrar uma forma bastante adequada e simples para acessar os serviços do Google Maps, diretamente na sua url.

Tudo será feito no Clarion, mas desenvolvedores de outras linguagens com certeza poderão usar as informações para adaptá-los as suas IDEs. Vamos lá:

A primeira questão neste projeto, é: “Como acessar a internet e os serviços do Google, sem um browser nativo?”, a resposta foi: “Usar a API do windows para acessar o Browser padrão instalado, e por ele fazer os requests necessários”.

Para isso, usei a ShellExecute: funcionalidade da API do Windows, para executar aplicativos externos.

Na nossa ide Clarion, crie um novo projeto: File -> New -> Project. Defina os parâmetros e confirme. Em nossa CLW digite o seguinte código:

  !Inicio de nosso aplicativo
  PROGRAM
 
  MAP
      !Função responsável pelo tratamento da URL e envio ao Browser
      ChamaBrowser(unsigned, STRING)
 
      !Chamando Funcao da API
      MODULE('')
          ShellExecute(UNSIGNED,LONG,*CSTRING,LONG,*CSTRING,SIGNED),UNSIGNED,PASCAL,RAW,NAME('SHELLEXECUTEA')
      END
  END
 
!Declarando Variáveis
wEndereco                CSTRING(200)
wBairro                  CSTRING(200)
wCidade                  CSTRING(200)
wEstado                  CSTRING(2)
wDestino                 CSTRING(200)
wOrigem                  CSTRING(200)
 
!Criando interface com Usuário
Window WINDOW('Usando servicos Google Maps - by Adriano Santos'),AT(,,219,157),CENTER,SYSTEM
       STRING('Consultar Endereço no Mapa:'),AT(5,4),USE(?String1)
       STRING('Endereço:'),AT(6,17),USE(?String3)
       ENTRY(@s199),AT(40,17,168,10),USE(wEndereco)
       STRING('Bairro:'),AT(17,28),USE(?String4)
       ENTRY(@s199),AT(40,28,168,10),USE(wBairro)
       STRING('Cidade:'),AT(14,39),USE(?String5)
       ENTRY(@s199),AT(40,39,120,10),USE(wCidade)
       STRING('Estado:'),AT(164,39),USE(?String6)
       ENTRY(@s2),AT(190,39,18,10),USE(wEstado)
       BUTTON('Consultar Endereço'),AT(156,51,52,16),USE(?BtnConsultarEndereco),LEFT
       LINE,AT(5,70,208,0),USE(?Line1),COLOR(COLOR:Black)
       STRING('Traçar Rota:'),AT(8,75),USE(?String2)
       STRING('Origem:'),AT(13,86),USE(?String7)
       ENTRY(@s199),AT(40,86,168,10),USE(wOrigem)
       ENTRY(@s199),AT(40,98,168,10),USE(wDestino)
       STRING('Destino:'),AT(12,99),USE(?String8)
       BUTTON('Traçar Rota'),AT(156,109,52,16),USE(?BtnTracarRota)
       LINE,AT(5,133,205,0),USE(?Line2),COLOR(COLOR:Black)
       BUTTON('Sair'),AT(176,137,32,16),USE(?BtnSair)
     END
 
  CODE
 
  OPEN(Window)
  ACCEPT
  CASE ACCEPTED()
  OF ?BtnConsultarEndereco
     !Consultando endereço no Mapa
     ChamaBrowser(Window{prop:handle}, |
              'http://maps.google.com/?q=' &|
              CLIP(wCidade)   &','&|
              CLIP(wEstado)   &','&|
              CLIP(wEndereco) )
     DISPLAY
  OF ?BtnTracarRota
     !Consultando rota entre destinos
     ChamaBrowser(Window{prop:handle}, |
              'http://maps.google.com/?q=from:' &|
              CLIP(wOrigem)   &' to: '&|
              CLIP(wDestino) )
     DISPLAY
  OF ?BtnSair
     !Finalizar Aplicativo
     BREAK
  END
 END
 
 CLOSE(Window)
 RETURN
 
ChamaBrowser  PROCEDURE (wHandle, URL)
URLBuffer            CSTRING(256)
EmptyString          CSTRING(254)
  CODE
    URLBuffer = CLIP(URL)
    EmptyString=''
    x# = ShellExecute(whandle, 0, URLBuffer, 0, EmptyString, 1)

Não vou entrar em detalhes básicos deste código, como criação de variáveis, tratamento da window com ACCEPT, entre outras coisas, vamos direto ao código dos botões “Consultar Endereço” e “Traçar Rota”. No primeiro botão, em seu evento ACCEPTED(), chamamos a função “ChamaBrowser”, o qual recebe duas variáveis, sendo a primeira, a handle, ou endereço de memória da window e a segunda a URL. Quando esta função é executada, então é feito tratamento da URL, e enviada ao ShellExecute.

Detalhe na URL… Vasculhando o código da página Google, descobri um “input hidden” chamando “q”, e então resolvi passar a URL para ele, e ver o resultado do GET.

Source Google Maps

Foi impressionante, este input popula o form do Google Maps, fazendo a pesquisa conforme o endereço indicado. Depois foi somente estudar mais um pouco e descobrir as tags “from:” e “to:” para conseguir traças rotas no mapa. Veja:

Aplicativo Clarion para consultar no Google Maps

Resultado:

Resultado no Google Maps, rota Maringá-PR à São Paulo-SP

Para fazer o downlod dos arquivos deste projeto, clique aqui.

1 Voto2 Votos3 Votos4 Votos5 Votos (3 votes, average: 4,67 out of 5)
Loading ... Loading ...

Comentários (1)

Google Chrome 4.0.249.89 Google Chrome 4.0.249.89 Windows 7 Windows 7

aki vai um comentário.