Capas en Google Earth en Google Maps ðŸ—ºï¸ k38 ✈ï¸


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
Autor Mensaje

Imagen: Morta
Veterano

Veterano
Registrado: 09-10-2008
Mensajes: 64

Votos: 0 ðŸ‘
Enlaces Asunto: Re: Capas en Google Earth
Publicado:
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:

Imagen: Morta
Veterano

Veterano
Registrado: 09-10-2008
Mensajes: 64

Votos: 0 ðŸ‘
Enlaces Asunto: Re: Capas en Google Earth
Publicado:
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:

Imagen: _polifemo
SuperExpert

SuperExpert
Registrado: 27-11-2009
Mensajes: 436

Votos: 0 ðŸ‘
Enlaces Asunto: Re: Capas en Google Earth
Publicado:
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:

Imagen: Morta
Veterano

Veterano
Registrado: 09-10-2008
Mensajes: 64

Votos: 0 ðŸ‘
Enlaces Asunto: Re: Capas en Google Earth
Publicado:
Responder citando
Hola Polifemo

Es lo que tiene lo de chapurrear el inglés, que tengo que tirar de traductores automáticos y debo decir cada barbaridad Trist

Conozco ese visor interactivo, lo he visto alguna vez por ahí pero con el enlace que pones se abre pero en vacío, sin datos y no se como llegar al original con el código que, recuerdo que he visto alguna vez

Vaya. me alegro de no ser el único que se vuelve loco con la ayuda de las apis de Google Sonriente La verdad es que se podían currar un poquito mas la ayuda con mas ejemplos y un poco menos caótica en la organización de la documentación o al menos eso me parece a mi


Esto es lo que pretendo hacer. Ahora sería adaptarlo para Google Earth. A ver si damos con ello.
Un saludo

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="CHARSET" CONTENT="ISO-8859-1">
<title>Ver tracks en GOOGLE MAPS</title>
</head>
<body>
<script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAArCZgeQ8ddm8YbeJQqqHN5BTYrZjdppbykE52CdH9dtH9wJ0VsBQSgm6ZbaTJsaMARyyYkz_JttmHMQ"
type="text/javascript"></script>

<script type="text/javascript">
var map;
var geoXml = new GGeoXml("http://code.google.com/articles/support/earthapikml.kml");


var toggleState = 0;//SE MUESTRA O NO EL TRACK CUANDO CARGA LA PAGINA
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(37.7981196,
-122.58785), 12);
map.addControl(new GLargeMapControl());
map.addMapType(G_NORMAL_MAP);
map.addMapType(G_SATELLITE_MAP);
map.addMapType(G_HYBRID_MAP);
map.addMapType(G_PHYSICAL_MAP);
map.addControl(new GMapTypeControl());
map.addOverlay(geoXml);

}
}
function toggleMyKml() {
if (toggleState == 0) {
map.removeOverlay(geoXml);
toggleState = 1;//SE MUESTRA EL TRACK
} else {
map.addOverlay(geoXml);
toggleState = 0;//SE OCULTA EL TRACK
}
}
</script>
</head>
<body onunload="GUnload()">
<body onload="initialize()">
<center><div id="map_canvas" style="width: 900px; height: 900px; float:center; border: 1px solid black;"></div>
</div>
<br clear="all"/>
<br/>

<center><input type="button" value="VER / OCULTAR TRACK" onClick="toggleMyKml();"/></CENTER>
</body>
</html>
Ir arriba Compartir:
Mostrar mensajes de anteriores:   
 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