Modificar Kml 🗺️ Foro Programación de Google Earth y Maps 🗺️

Foro de Programación de Google Earth y Maps Foro de Programación de Google Earth y Maps: Programación con las APIs de Google: Google Earth, Google Maps, KML, Aplicaciones Moviles
Responder al tema Versión Imprimible
Página 1 de 1 - Tema con 7 Mensajes y 16213 Lecturas
Último Mensaje:
Autor Mensaje

Imagen: Uky15
Usuario Reciente
Usuario Reciente
Registrado:
26-09-2011
Mensajes: 3

Votos: 0 👍
Responder citando

EnlacesAsunto: Modificar Kml

Publicado:
Buenas, llevo un tiempo intentando modificar estos archivos tratandolos como ficheros de texto simple desde VBA. Mi problema viene al modificar de forma masiva, necesito cambiar el estilo de las plantillas para los Placemark de un Kml, y son demasiadas como para hacerlo de forma manual.

No se si alguien me puede ayudar acerca de este tema, o me puede aportar una solución alternativa, muchas gracias :).
Ir arriba Uky15
Compartir:

Imagen: Morta
Veterano
Veterano
Registrado:
09-10-2008
Mensajes: 64

Votos: 0 👍
Responder citando

EnlacesAsunto: Re: Modificar Kml

Publicado:
No se si te entiendo bien lo que quieres hacer.
No controlo de VBA. Yo utilizo un truco un poco burdo en VB6 que supongo puede ser aplicado en VBA. Lo que hago es localizar en el fichero de texto la posición de una etiqueta concreta, pongamos y luego la posición de la etiqueta de cierre y así obtengo lo que hay entre ellas. Luego simplemente hago un replace.
No se si me he explicado.
Saludos
Ir arriba Morta
Compartir:

Imagen: _polifemo
SuperExpert
SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando

EnlacesAsunto: Re: Modificar Kml

Publicado:
Buenas Uky15, buenas Morta Guiño :

Opino que el método de Morta es el mas cómodo y recomendable.

Suponiendo que no te valga esa opción tienes la clase XmlReader en msdn.microsoft.com/ ....xmlreader que al menos está bajo .Net, aunque no estoy seguro de que en VBA esté implementada (si no lo está, descárgate gratuitamente de la web oficial el último VB.Net).

En la misma página hay tutoriales muy buenos donde te explica como leer un archivo xml. Seguro que hay otro donde explica como modificar el contenido de cada nodo.

No obstante me sumo al comentario de Morta, tampoco tengo claro que necesitas hacer. Cuando dices "cambiar el estilo de las plantillas para los Placemark de un Kml", ¿a que te refieres exáctamente?. ¿Solo necesitas cambiar los valores de los nodos o quieres cambiar los nodos en si.?

Un saludo.
Ir arriba _polifemo
Compartir:

Imagen: Maquito
SuperExpert
SuperExpert
Registrado:
08-01-2009
Mensajes: 482
Visitar sitio web del autor
Votos: 0 👍
Responder citando

EnlacesAsunto: Re: Modificar Kml

Publicado:
No entiendo del todo lo que quereis hacer. Pero si fuesen por ahí los tiros
Os comento una forma de cambiar el estilo de las marcas de posición, etiquetas dandole a todas el mismo es. Meter todas en una misma carpeta en dentro de mis lugares. Darle los parámetros deseados a la primera. Luego seleccionando la carpeta, propiedades. Estilo color, nos indicará que que los elementos incluidos no comparten el mismo estilo. Y nos da la opción de compartir estilo y todos tendrán el estilo del primero. Por ejemplo de este fichero incluido en la comunidad de googleRadio ayudas de navegación he creado este en unos pocos minutos
Escenario escenografico
En el que las marcas de posición de las radio ayudas ahora serian aviones en vuelo. Estáticos claro y los aeropuertos tienen una torre de referencia.
Espero que a alguien le sirva
Ir arriba Maquito
Compartir:

Imagen: Uky15
Usuario Reciente
Usuario Reciente
Registrado:
26-09-2011
Mensajes: 3

Votos: 0 👍
Responder citando

EnlacesAsunto: Re: Modificar Kml

Publicado:
Buenas!, gracias por contestarme :).

Creo que no me explique muy bien jejeje, veréis tengo que modificar un único kml para que todas las marcas de posición tengan el mismo estilo de "bocadillo" al pinchar en ellas, ya que vienen con el de defecto (fondo blanco, sin imagen, feo vamos...).

Dispongo de otro kml que hice en su día como plantilla con un estilo más coqueto, es por esto que se me ocurrió hacer un programilla en VBA para añadir este estilo a todas las marcas del kml "sosete", pero siendo sinceros, es un poco chapuza (localizo el fichero, el texto a cambiar, y le introduzco mi texto con replace, pero me modifica nodos que no tiene que modificar además de otros fallos).

Morta tu solución creo que me puede ayudar, me lo podrías detallar un poco más por favor?.

_polifemo me voy a poner a buscar información sobre modificar como un xml ya que como bien dices, puede ser la alternativa, aunque estoy un poco verde jejeje.

Maquito tu solución me ha servido en parte, pero no ha modificado las marcas tal y como deseaba, aún así gracias por tu respuesta por que sé que más adelante le voy a dar uso!.

Gracias! Un Saludo.
Ir arriba Uky15
Compartir:

Imagen: Morta
Veterano
Veterano
Registrado:
09-10-2008
Mensajes: 64

Votos: 0 👍
Responder citando

EnlacesAsunto: Re: Modificar Kml

Publicado:
Uky15 ahora no tengo tiempo de ponertelo mas claro pero creo que con esto sería suficiente para que entiendas la dinámica

Abres el fichero y guardas el contenido en una variable

Open FORIGEN For Input As #NOR
'con esto se asigna el contenido completo del fichero a una variable
tamaño = FileLen(FORIGEN)
CONTENIDO$ = Input(tamaño, NOR)
Close #NOR



Esto deberías de ponerlo en un bucle para que te vaya leyendo todo el fichero y haga todas las sustituciones


'******
'BUSCA LA ETIQUETA DE INICIO DE COLOR
C1 = ""
POS1 = InStr(ULTIMAPOSICION, CONTENIDO$, C1, 0): POS1 = POS1 + 7
'BUSCA LA ETIQUETA DE FINAL
C2 = ""
POS2 = InStr(POS1, CONTENIDO$, C2, 0)

'CUENTA EL NUMERO DE CARACTERES Y OBTIENE EL VALOR
L1 = POS2 - POS1
VALOR1 = Trim(Mid(CONTENIDO$, POS1, L1)) 'esto es lo que hay entre las etiquetas

'si difiere del valor que queremos, hace un replace
If VALOR1 "ffff0000" Then
CONTENIDO$ = Replace(CONTENIDO$, "" & VALOR1 & "", "ffff0000")
End If

'ultimaposición = POS2

'******
'******
Ir arriba Morta
Compartir:

Imagen: Uky15
Usuario Reciente
Usuario Reciente
Registrado:
26-09-2011
Mensajes: 3

Votos: 0 👍
Responder citando

EnlacesAsunto: Re: Modificar Kml

Publicado:
Muchas gracias!!, me esta sirviendo bastante, de verdad :).
Aún así, más adelante seguramente tenga que empezar a tratarlos como xml.

Un saludo!
Ir arriba Uky15
Compartir:
Mostrar mensajes de anteriores:
Responder al tema Versión Imprimible
Página 1 de 1 - Tema con 7 Mensajes y 16213 Lecturas - Última modificación: 03/10/2011


RSS: Foro Programación de Google Earth y Maps RSS - Últimos Mensajes
Cambiar a:  


Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
No Puedes adjuntar archivos en este foro
Tu puedes descargar archivos en este foro

Mostrar/Ocultar Últimas Fotos del Foro