2012-04-11 3 views
0

J'ai donc un dossier contenant 2 repères. L'un d'eux est caché en charge tandis que l'autre est visible. J'aimerais avoir un lien dans la description du visible pour cacher/montrer le caché. Y a-t-il un moyen de faire cela?Cocher/décocher l'élément via le lien dans Google Earth

+0

Je ne pense pas que vous pouvez faire ceci avec le Google Earth autonome, cependant vous pouvez avec le plugin Google Earth pour les navigateurs Web. – lifeIsGood

Répondre

0

Si vous utilisez le plugin Google Earth, c'est une façon de le faire.

d'abord attribuer à chaque Placemark un 'id' - donc dans le fichier KML vous devez modifier le code qui dit

<Placemark> 
    <name>Placemark 1</name> 

à

<Placemark id="placemark1"> 
    <name>Placemark 1</name> 

et même pour Placemark # 2

alors vous avez une fonction javascript comme celle-ci, qui est exécutée en ajoutant un bouton à travers la description du ballon (see this example page for how to do that)

function togglePlacemarks() { 
     var pm1 = ge.getElementById('placemark1'); 
     var pm1 = ge.getElementById('placemark1'); 
     if (pm1.getVisibility() == true) { 
    pm1.setVisibility(false); 
      pm2.setVisibility(true); 
    } else { 
    pm1.setVisibility(true); 
      pm2.setVisibility(false); 
    } 
    } 

Dans le code exemple pour exécuter JS à partir d'un ballon, vous changeriez la ligne suivante

 balloon.setContentString(
    '<a href="#" onclick="alert(\'Running some JavaScript!\');">Alert!</a>'); 

à

 balloon.setContentString(
    '<a href="#" onclick="togglePlacemarks();">Toggle Visibility</a>'); 

Enfin, si vous souhaitez que d'avoir un simple (seulement 2 repères), alors peut-être vous devriez utiliser l'exemple de code pour créer vos repères au lieu de créer et de charger un fichier KML personnalisé. Dans ce cas, lorsque vous créez les repères (par cette ligne de code)

 placemark = ge.createPlacemark(''); 

Vous devez faire cela

 placemark1 = ge.createPlacemark('placemark1'); 
    ...etc 

et aussi

 placemark2 = ge.createPlacemark('placemark2'); 
    ... etc 
    placemark2.setVisibility(false);