API Google Maps parseo


([N1] lsmsusvilla) #1

Alguien podria echarme una mano en un pequeño proyecto que creo que podria interesar a muchos. Mi idea es extraer los datos de dirección que te da esta pagina http://obedalvarado.pw/demo/lugares/ para completar una direccion, pero no tengo muy claro de como hacerlo de como interactuar con la API.
Alguien sabria como hacerlo?


([N1] aztecmexico) #2

Buen día, para el autocompletado tienes que conocer la api correspondiente, https://developers.google.com/maps/documentation/javascript/places-autocomplete?hl=es-419

Yo no he utilizado el autocompletado en lo particular, pero si el registrar direcciones en mis apps V7 y usar el api de google para que me devuelva la dirección formateada y en todo caso comprobar que sí existe, para eso uso más o menos el siguiente procedimiento:

Set (JSONDIR, "")
Set (VL_DIR_URL, choose(isEmpty(VL_SIMP_CALLE), "", VL_SIMP_CALLE + " ") +
choose(isEmpty(VL_SIMP_NO_EXT), "", VL_SIMP_NO_EXT + ", ") +
choose(isEmpty(VL_SIMP_COL), "", VL_SIMP_COL + ", ") +
choose(isEmpty(VL_SIMP_LOC), "", VL_SIMP_LOC + ", ") +
choose(isEmpty(VL_SIMP_CIUD), "", VL_SIMP_CIUD + ", ") +
choose(isEmpty(VL_SIMP_MUN), "", VL_SIMP_MUN + ", ") +
choose(isEmpty(VL_SIMP_EST), "", VL_SIMP_EST)
)
Set VL_DIR_URL (replaceString(VL_DIR_URL, " ", "+"))
Set VL_DIR_URL (replaceString(VL_DIR_URL, "++ ", "+"))
Get fichero de URL ("https://maps.googleapis.com/maps/api/geocode/json?address=" + VL_DIR_URL + "&languaje=es&key=Tu API Key", sysCacheClientPath + "dirgeoref.json"

La última línea es la que consume el API que me devuelve todas las direcciones que encuentre similares, ya con eso yo las voy parseando (previo análisis del json que devuelve), las grabo en una tabla temporal en memoria, y le muestro al usuario las opciones para que elija una de las varias direcciones propuestas, si solo devuelve una no le muestro esa lista.

En el caso que pones del demo, veo que es en web, habría que probar para ver si guarda en algún lugar del html la dirección autocompletada elegida (porque el autocompletado lo hace todo google) y ya entonces extraer esa dirección y pasarla a tu aplicación V7.

Espero no haberte enredado más, pero en sí no es tan complicado.

Ojo, debes generar una apikey para poder usar esos servicios, no cuesta y es relativamente sencillo.

Saludos.




([N1] lsmsusvilla) #3

Muchas gracias le echare un vistazo a ver si puedo montar algo te voy diciendo ok


([N1] lsmsusvilla) #4

Y un pequeño ejemplo podrias tener para ir mas a tiro hecho


([N1] lsmsusvilla) #5

Alguien podria decirme como puedo extraer el código fuente de una dirección web que este en un visor HTML, tal y como sale cuando en el visor HTML de velneo le das a ver código fuente. Mas concretamente de esta página http://obedalvarado.pw/demo/lugares/
E intentado utilizar este código en javascript pero no me devuelve el código fuente.

//Obtenemos el control visor HTML
var html = theRoot.dataView().control( “VIS_HTML” );
//Leemos el código fuente del objeto HTML donde tenemos la etiqueta DIV que usamos de contenedor para enlazar HTML y V7
var codigo = html.sourceCode();
alert(codigo)

Podría hacerse de otra manera???


([N1] lsmsusvilla) #6

Buenos dias pacosatu se podrias, podría solicitar tu valiosa colaboracion para ver si me puedes orientar y dar algunas ideas para hacer lo que tengo planteado en el foro, la idea es que desde un formulario velneo te muestre o se pueda acceder a la pagina de google donde te busca y muestra una dirección y posteriormente poder pasar esos parametros a los campos del formulario velneo, eso o cualquier otra posibilidad que haya.
Te lo pido a ti como maestro de maestros que se que eres pero cualquier otra ayuda o sugerencia sera muy bienvenida.


([N3] pacosatu) #7

Hola lsmsusvilla.

Lo de maestro de maestros, nada más lejos de la realidad. Solo me dedico a transmitir mi conocimiento sobre la herramienta Velneo y poco más. De todas formas gracias por el piropo.

Descargar el HTML de la página se realiza mediante la función sourceCode() y me extraña que no te funcione. Si embargo, no solucionarías nada con eso, pues solo obtendrías el HTML inicial cargado en el Visor, es decir, sin los resultados del Autocompletado.

En cualquier caso, aztecmexico ya te ha dado una solución, aunque requiere aprender el API de Google Maps y controlar un poco HTML y javascript. No es complicado para un informático, aunque sí que lleva tiempo porque son API’s muy extensas.

Si no quieres meterte con el API de Google y obtener los resultados desde la página HTML, no tendrás más remedio que modificar un poco la página con el formulario y enviar a Velneo el contenido de los campos de la dirección completa.

He preparado un ejemplo (Autocompletar Dirección) en mi aplicación de ejercicios del Cloud, en la parte del editor HTML.
Allí verás cómo obtener el resultado desde los campos del formulario y enviarlos a Velneo mediante el único evento disponible con Velneo.
Es algo muy sencillo, pero requiere que tengas unos conocimientos mínimos de HTML y javascript.

Saludos
Paco Satué


([N1] lsmsusvilla) #8

Muchas gracias paco, a eso es exactamente a lo que me refería, ahora solo tengo que estudiar a ver como lo has hecho porque una cosa es verlo en el ejemplo y otra… Y el problema es que tanto en HTML como en javascript se lo basico basico. De momento me pondré a estudiar tu ejemplo y a ver si consigo algo. Porque lo de acceder al código o vin del ejemplo para entenderlo mejor entiendo que no se puede no?


([N1] lsmsusvilla) #9

Perdona de nuevo Paco o voy perdiendo facultades con el paso del tiempo o… pero no me entero de nada, podría pedirte que me pasases o colgases un ejemplo o un vin con lo basico de como implementar el editor HTML y de como capturar el click del botón del ejemplo que hicieste en el tema de las direcciones. Estoy venga a repasar el foro y la verdad es que me pierdo entre tantas explicaciones y un ejemplo vale más que mil palabras.


([N1] lsmsusvilla) #10

Alguien tendria algun ejemplo básico de como capturar e interactuar los clicks en una vista web HTML, para meterme un poco con ello. Llevo varios dias mirando documentación y no hay manera.
Gracias


([N1] aztecmexico) #11

Hola lsmsusvilla, si gustas contáctame por skype, mi usuario es aztecmexico, y nos ponemos de acuerdo para mostrarte cómo lo tengo implementado.

Saludos.


([N1] lsmsusvilla) #12

Ok muchas gracias en cuanto tenga un momento contacto a ver si me voy enterando de algo


([N1] lsmsusvilla) #13

Hola aztecmexico estoy intentando entrar en skype pero se bloqueo y estoy a la espera de que me manden las claves de confirmación para poder iniciar sesion. Podriamos hablar por correo y me vas diciendo algo si te parece registro546723@gmail.com.

Ademas no se que tal coincidiremos en el horario porque imagino que no estas en españa
Gracias