PDA

Ver la Versión Completa : [PowerCOBOL] Google Maps localización


Rapinto
6 de abril de 2015, 01:29
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:


MOVE
"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:

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
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:
cmd /c start https://www.google.com.ar/maps/@-32.9531356,-60.6575539,15z
Yo lo hago en mis programas de PowerCobol V3.
De ese modo se abre la pagina con el navegador predeterminado de Windows.

Ej:
01 LINEA PIC X(256).
MOVE "cmd /c start https://www.google.com.ar/maps/@-32.9531356,-60.6575539,15z" TO LINEA.
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
(http://www.100coolthings.net/Things/Web20/GoogleMapsCobol/tabid/152/Default.aspx)

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

ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 webBrowserCom usage object reference COM. *> será usado para referenciar o objeto WebBrowser1
01 document usage object reference COM. *> representa o documento HTML carregado no WebBrowser1
01 parentWindow usage object reference COM. *> representa o topo da hierarquia DOM do HTML

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

INVOKE WebBrowser1 "Navigate" USING "http://www.100coolthings.net/Portals/3/GoogleMapsAPI.html"

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

CALL "POWERCONVTOCOM" USING WebBrowser1 returning webBrowserCom

Em seguida obtemos o objeto que representa o HTML carregado

invoke webBrowserCom "GET-Document" returning document

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

invoke document "GET-parentWindow" returning parentWindow

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

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:

// findLocation is called by PowerCobol to look for a location based in the passed address
function findLocation(address) {
document.forms[0].q.value = address;
showLocation();
}

Se quisermos obter um valor de retorno, podemos declarar o INVOKE da seguinte forma:

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
Tambien funciona ejecutar en cualquier DDE esta linea:
cmd /c start https://www.google.com.ar/maps/@-32.9531356,-60.6575539,15z
Yo lo hago en mis programas de PowerCobol V3.
De ese modo se abre la pagina con el navegador predeterminado de Windows.

Ej:
01 LINEA PIC X(256).
MOVE "cmd /c start https://www.google.com.ar/maps/@-32.9531356,-60.6575539,15z" TO LINEA.
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: 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:


ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 LLAMADA.
02 FILLER PIC X(9) VALUE "explorer ".
02 FILLER PIC X(1) VALUE QUOTE.
02 FILLER PIC X(69) VALUE "http://maps.google.com/maps?f=q&hl=en&geocode=&time=&date=&ttype=&q=@".
02 DIRECC PIC X(80) VALUE SPACES.
02 FILLER PIC X(13) VALUE "@&ie=UTF8&t=m".
02 FILLER PIC X(1) VALUE QUOTE.
PROCEDURE DIVISION.
MOVE "fuenlabrada+madrid" TO DIRECC.
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.