COBOL Foro

COBOL Foro (https://www.cobolforo.es/index.php)
-   Cocina PowerCOBOL (https://www.cobolforo.es/forumdisplay.php?f=24)
-   -   [Aporte] Google Maps localización (https://www.cobolforo.es/showthread.php?t=89)

Rapinto 6 de abril de 2015 01:29

Google Maps localización
 
Não sei se interessa a alguém, mas podemos a partir do Fujitsu Cobol, abrir o Google Maps, passando uma morada (rua ou Av., postal code cidade, pais) e mostrar logo o localização.

É muito simples:

Basta criar um URL do tipo:

Código COBOL:
  1. MOVE
  2. "http://maps.google.com/maps? f=q&hl=en&geocode=&time=&date=&ttype=&q=@ADDR@&ie=UTF8&t=m"  TO URL.

Substituindo "@ADDR@" pela morada+cidade+pais

em seguida executar o comando:
Código COBOL:
  1.     INVOKE POW-SELF "Execute" USING CALLBROWSER.  

a variável CALLBROWSER é igual a "iexplore.exe URL"

Se quiserem posso carregar um pequeno exemplo.

(Também podem utilizar o Yahoo, substituindo o URL por :
"http://maps.yahoo.com/maps_result.php?q1=@ADDR@" )


Saludos,
Rui Pinto

Josber 6 de abril de 2015 09:59

Pues si no te importa poner/subir un ejemplo, sería de agradecer Rui.

Muchas gracias
Un saludo.-

Rapinto 6 de abril de 2015 18:40

3 Archivos Adjunto(s)
Josber,

Aqui vai.
Está em PowerCobol Ver. 9.0
Para a vista externa deve ser alterada a localização e nome do browser.
Para a vista interna, tem que acrescentar o objecto ieframe.dll da Microsoft.


Saludos,
Rui

Adrianeloy 7 de abril de 2015 21:12

Tambien funciona ejecutar en cualquier DDE esta linea:
Yo lo hago en mis programas de PowerCobol V3.
De ese modo se abre la pagina con el navegador predeterminado de Windows.

Ej:
Código COBOL:
  1. 01 LINEA PIC X(256).
  2.      MOVE "cmd /c start https://www.google.com.ar/maps/@-32.9531356,-60.6575539,15z" TO LINEA.
  3.      CALL EXECAPL OF DDE1 USING LINEA POW-SWNORMAL.

adrianeloy, usa los botones CODE, COBOL etc. de resalto de sintaxis.

Eslopes 2 de septiembre de 2015 13:23

Olá,

podemos levar a integração com o browser um passo adiante. Tenho um exemplo de integração com o GoogleMaps que permite a uma aplicação PowerCobol não apenas carregar o mapa num determinado endereço, mas executar funções Javascript, passando parâmetros e recebendo de volta valores das funções dentro do html

O exemplo está em inglês, mas é muito fácil de se entender.

GoogleMaps + Cobol


O segredo é a capacidade do Power de manipular objetos COM:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  webBrowserCom usage object reference COM.    *> será usado para referenciar o objeto WebBrowser1
  5.  01  document      usage object reference COM.         *> representa o documento HTML carregado no WebBrowser1
  6.  01  parentWindow  usage object reference COM.      *> representa o topo da hierarquia DOM do HTML

Primeiro, carregamos a página Web no objeto WebBrowser1:

Código COBOL:
  1. INVOKE WebBrowser1 "Navigate" USING "http://www.100coolthings.net/Portals/3/GoogleMapsAPI.html"

Segundo, precisamos converter um objeto POWER para o tipo COM:

Código COBOL:
  1.      CALL "POWERCONVTOCOM" USING WebBrowser1 returning webBrowserCom

Em seguida obtemos o objeto que representa o HTML carregado

Código COBOL:
  1.      invoke webBrowserCom "GET-Document" returning document

Agora obtemos o objeto que representa o topo da hierarquia DOM do HTML carregado no WebBrowser1:

Código COBOL:
  1.      invoke document      "GET-parentWindow"  returning parentWindow

A partir deste momento podemos executar QUALQUER Javascript que exista na página:

Código COBOL:
  1.      invoke parentWindow "execScript" using "findLocation('Colatina, ES, BR');" & x"00"

No caso a URL usada aponta para uma página HTML que contém o seguinte Javascript:

Código Java:
  1. // findLocation is called by PowerCobol to look for a location based in the passed address
  2.     function findLocation(address) {
  3.       document.forms[0].q.value = address;
  4.       showLocation();
  5.     }
Se quisermos obter um valor de retorno, podemos declarar o INVOKE da seguinte forma:

Código COBOL:
  1.      invoke parentWindow "execScript" using "findLocation('Colatina, ES, BR');" & x"00" RETURNING retorno

"retorno" seria uma variável PIC X(n).

Dá para usar jQuery, Mootols, montar telas em HTML5, usar componentes online ou offline (html local) etc , etc, etc...

Pensem nas possibilidades :)

Saludos, Emerson


eslopes, usa el resalto de sintaxis (sintax highlight buttons)

---------- Post added at 08:23 ---------- Previous post was at 08:06 ----------

Olá, agora entendi o que significa "usa el resalto de sintaxis (sintax highlight buttons)" rs...

Vou usar este recurso na próxima vez (antes eu achava que o forum fazia isto automaticamente, rs.

Saludos, Emerson

Galileo 19 de diciembre de 2015 22:02

Cita:

Cita del post de Adrianeloy (Mensaje 351)
Tambien funciona ejecutar en cualquier DDE esta linea:
Yo lo hago en mis programas de PowerCobol V3.
De ese modo se abre la pagina con el navegador predeterminado de Windows.

Ej:
Código COBOL:
  1. 01 LINEA PIC X(256).
  2.      MOVE "cmd /c start https://www.google.com.ar/maps/@-32.9531356,-60.6575539,15z" TO LINEA.
  3.      CALL EXECAPL OF DDE1 USING LINEA POW-SWNORMAL.

adrianeloy, usa los botones CODE, COBOL etc. de resalto de sintaxis.

Correcto. Es más, en mis programillas la ayuda consistía en un fichero HTML y usaba este método para invocarla:
Código COBOL:
  1. CALL EXECAPL OF PRINCIPAL USING "EXPLORER AYUDA.HTM".

Joseg 13 de noviembre de 2018 19:57

Necessito de uma integração com o Google Maps, do tipo, pesquisar uma determinada morada (parece fácil com os exemplos aqui mostrados), e devolver as coordenadas da morada seleccionada para registar numa tabela.
Alguém consegui uma iteração total ou parcial com o Google Maps?

Gracias

Galileo 11 de diciembre de 2018 19:09

Esto funciona en PowerCOBOL 3.0:

Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01 LLAMADA.
  5.     02  FILLER  PIC X(9) VALUE "explorer ".
  6.     02  FILLER  PIC X(1) VALUE QUOTE.
  7.     02  FILLER  PIC X(69) VALUE "http://maps.google.com/maps?f=q&hl=en&geocode=&time=&date=&ttype=&q=@".
  8.     02  DIRECC  PIC X(80) VALUE SPACES.
  9.     02  FILLER  PIC X(13) VALUE "@&ie=UTF8&t=m".
  10.     02  FILLER  PIC X(1) VALUE QUOTE.
  11.  PROCEDURE   DIVISION.
  12.     MOVE "fuenlabrada+madrid" TO DIRECC.
  13.     CALL EXECAPL OF SHEET1 USING LLAMADA.

En DIRECC pueden quedar muchos espacios al final, pero se gestionan automáticamente, por lo que no es un problema.


La franja horaria es GMT +1. Ahora son las 16:41.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.