Mostrar/Ocultar

 Modificar Kml 

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
SubForos: KML - Kmz
Página 1 de 1 - Tema con 7 Mensajes y 13171 Lecturas
Último Mensaje Publicado:
Autor Mensaje
Uky15
Uky15
Usuario Reciente
Usuario Reciente
Registrado:
26-09-2011
Mensajes: 3

Votos: 0 👍
Enlaces Asunto: Modificar Kml   Responder citando
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 Buenas, llevo un tiempo intentando modificar estos archivos tratandolos como ficheros de texto simple desde VBA. Mi problema viene al modificar de... Uky15 Compartir:
Morta
Morta
Veterano
Veterano
Registrado:
09-10-2008
Mensajes: 64

Votos: 0 👍
Enlaces Asunto: Re: Modificar Kml   Responder citando
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 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... Morta Compartir:
_polifemo
_polifemo
SuperExpert
SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Enlaces Asunto: Re: Modificar Kml   Responder citando
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 Buenas Uky15, buenas Morta : 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... _polifemo Compartir:
Maquito
Maquito
SuperExpert
SuperExpert
Registrado:
08-01-2009
Mensajes: 482
Visitar sitio web del autor
Votos: 0 👍
Enlaces Asunto: Re: Modificar Kml   Responder citando
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 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... Maquito Compartir:
Uky15
Uky15
Usuario Reciente
Usuario Reciente
Registrado:
26-09-2011
Mensajes: 3

Votos: 0 👍
Enlaces Asunto: Re: Modificar Kml   Responder citando
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 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... Uky15 Compartir:
Morta
Morta
Veterano
Veterano
Registrado:
09-10-2008
Mensajes: 64

Votos: 0 👍
Enlaces Asunto: Re: Modificar Kml   Responder citando
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

'ultimaposicion = POS2

'******
'******
Ir arriba 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... Morta Compartir:
Uky15
Uky15
Usuario Reciente
Usuario Reciente
Registrado:
26-09-2011
Mensajes: 3

Votos: 0 👍
Enlaces Asunto: Re: Modificar Kml   Responder citando
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 Muchas gracias!!, me esta sirviendo bastante, de verdad :). Aún así, más adelante seguramente tenga que empezar a tratarlos como xml. Un saludo! Uky15 Compartir:
Mostrar mensajes de anteriores:   
SubForos: KML - Kmz
 Responder al tema   Versión Imprimible
Todas las horas son GMT + 1 Hora
Página 1 de 1 - Tema con 7 Mensajes y 13171 Lecturas - Última modificación: 03/10/2011




RSS: Foro Programación de Google Earth y Maps RSS - Ultimos 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