Mostrar/Ocultar

 Capas en Google Earth en Google Maps 🗺️ k34 🗺️


Foro de Programación de Google Earth y Maps Foro de Programación de Google Earth y Maps: Foro de Programación con las APIs de Google: Google Earth, Google Maps, KML, Aplicaciones Moviles
SubForos: Java - Kmz - Google Maps - Herramientas - Html - Javascript - Excel - Php - Programacion
Autor Mensaje

_polifemo
SuperExpert

SuperExpert
Registrado: 27-11-2009
Mensajes: 436

Votos: 0 👍
Enlaces Re: Capas en Google Earth
Responder citando
Hola Morta, espero que esto pueda ayudarte.

-En code.google.com/ ...pikml.html tienes un artículo muy interesante para cargar y descargar archivos kml via los plugin de GE.

-Te adjunto un ejemplo que he realizado con los objetos del artículo anterior (pasalo a html) y con un command button al que puedes insertar código

-por último hecha un ojo al código de este ejemplo de GE earth-api-samples.googlecode.com/ ...index.html, pues creo que para tu caso va a ser mas decorativo los controles de checkbox en lugar de command button.

Reconozco que no he podido cargar varios kml en la misma instancia... pero debe haber un modo.

neo.txt   ( Ver en el Foro)
 Nombre:  neo.txt
 Tamaño:  1.46 KB
 Descargado:  340 veces
Ir arriba Compartir:

Morta
Veterano

Veterano
Registrado: 09-10-2008
Mensajes: 64

Votos: 0 👍
Enlaces Re: Capas en Google Earth
Responder citando
Hola Polifemo
Te agradezco mucho tu ayuda. Creo que el truco va a estar en utilizar ge.getFeatures().removeChild(networkLink);
No conocía esta posibilidad. La verdad es que la API debe tener muchas posibilidades pero me cuesta entender a veces las páginas de ayuda de Google Earth. A veces es un poco rebuscada la info y poco clara por lo que opto por copiar e ir modificando hasta que mas o menos hace lo que quiero sin llegar a entender muy bien como funciona

Por cierto, ¿me pasa a mi solo o es que bastantes enlaces de esas páginas de documentación no funcionan? A veces voy a ver un ejemplo y me dice que no existe la página.

Si consigo algo, ya lo postearé por aquí para que le pueda servir a alguien.
Ah, otra preguntita ¿no sabras como evitar que cuando te acercas hacia la tierra con la barra de control automáticamente la inclinación varíe hasta ver el horizonte? Me gustaría ver siempre la vertical de la imagen. Si habilitas el uso del ratón si que lo permite con el uso de la rueda del ratón pero si utilizas la barra, automáticamente muestra el horizonte cuando estás muy cerca. Y también ¿como evitar que se vea el relieve? Son opciones que tiene el programa pero que no consigo hacer en el plugin.
Perdona que te atosigue pero he hecho estas preguntas en el foro de developer de Google y no he conseguido respuesta, quizá no se puede hacer o no me he explicado bien en el inglés (del traductor automático) Trist

Un saludo y muchas gracias.
Ir arriba Compartir:

Morta
Veterano

Veterano
Registrado: 09-10-2008
Mensajes: 64

Votos: 0 👍
Enlaces Re: Capas en Google Earth
Responder citando
Hola de nuevo Polifemo

He estado haciendo pruebas pero no doy con ello
Tu ejemplo me vale pero lo que trato de hacer es que una vez cargado el fichero, se pueda ocultar y ver otra vez si el usuario quiere y volver a ocultarlo las veces que quiera. Con tu código se muestra una vez y posteriormente se oculta pero ya no se mostraría otra vez a no ser que se recargue la página

Supongo que el tema sería cargar el fichero y crear un boton o un checkbox que hiciera que la función initCallback se ejecutara de nuevo pero ahora con removeChild(networkLink) pero he probado de mil maneras pero nada, no soy capaz
En este ejemplo me dice que 'ge' es nulo o no es un objeto. Imagino que es porque la instancia ya está cargada



<html>
<head>
<script src="http://www.google.com/jsapi?key=ABQIAAAArCZgeQ8ddm8YbeJQqqHN5BTYrZjdppbykE52CdH9dtH9wJ0VsBQSgm6ZbaTJsaMARyyYkz_JttmHMQ"></script>
<script>
var path="http://code.google.com/articles/support/earthapikml.kml"
google.load('earth', '1');
var ge = null;
function init() {
google.earth.createInstance('map3d', initCallback, failureCallback);
}

function initCallback(pluginInstance) {
ge = pluginInstance;
ge.getWindow().setVisibility(true);
var link = ge.createLink('');
link.setHref(path);
var networkLink = ge.createNetworkLink('');
networkLink.setLink(link);
networkLink.setFlyToView(true);
ge.getFeatures().appendChild(networkLink);
//window.alert("Ahora deberias verlo (espera a que cargue)");
//ge.getFeatures().removeChild(networkLink);
//window.alert("Ahora no deberias verlo");
}

function ocultar(pluginInstance) {
ge = pluginInstance;
ge.getWindow().setVisibility(true);
var link = ge.createLink('');
link.setHref(path);
var networkLink = ge.createNetworkLink('');
networkLink.setLink(link);
networkLink.setFlyToView(true);
//ge.getFeatures().appendChild(networkLink);
//window.alert("Ahora deberias verlo (espera a que cargue)");
ge.getFeatures().removeChild(networkLink);
window.alert("Ahora no deberias verlo");
}
function Traspulsartecla() {
window.alert("Has pulsado el boton ejecutar");
}
function failureCallback() {
window.alert("Ha habido un error");
}
</script>

</head>
<body onload="init()" id="body">
<div id="map3d_container" style="width: 500px; height: 500px;">
<div id="map3d" style="height: 100%;"></div>
</div>
<br>
<br>
<div>
<form action='javascript:ocultar();void(0);'>
<input type=submit value='ocultar'>
</form>
</div>

</body>
</html>

Sigo intentándolo....
Ir arriba Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado: 27-11-2009
Mensajes: 436

Votos: 0 👍
Enlaces Re: Capas en Google Earth
Responder citando
Juas, juas... la verdad es que las traducciones automáticas son casi tan malas como las nuestras.

Opino como tú que el truco va a estar en la aplicacion del método "removeChild". pero si te fijas en el primer artículo que te pasé hay un cuadro que compara los tres métodos disponibles. Pues resula que hemos optado por intentarlo por el único que no permite manipular el kml despues de desplegado. La clave va ha estar en el método fetchKml.

He encontrado esto code.google.com/ ...nteractive) tienes ejemplos con cb, chbox y un ejemplo de como desactivar y activar el relieve (pedazo de rincón, me da que lo vamos ha visitar mucho).

A ver si saco tiempo y te hecho una mano (vamos, si mi jefe me deja). Pero creo que podrás adaptar el código sin problemas. Suerte y a ello.

PD: yo tambien tengo problemas y muchos en encontrar lo que necesito cuando consulto en la "ayuda" de GE.
Ir arriba Compartir:
Mostrar mensajes de anteriores:   
SubForos: Java - Kmz - Google Maps - Herramientas - Html - Javascript - Excel - Php - Programacion
 Responder al tema   Versión Imprimible
Todas las horas son GMT + 1 Hora




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