Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 16 August 2012 15:19

Georgie
Participant assidu
Date d'inscription: 28 May 2011
Messages: 232

GoogleEarth et les fichiers kml (contrôleurs de couches en html et js)

Bonjour, je débute en webmapping, et après avoir essayé plusieurs solutions, j'opte pour une simple page html, dans laquelle j'appelle GoogleEarth et des fichiers kml.

Cela fonctionne bien, j'essaie maintenant d'y mettre des contrôleurs de couches, pour faire apparaître/disparaître tel ou tel kml, mais sans succès.
J'ai aussi bien des questions sur les "function(s)" de JavaScript et les boutons qui leurs sont liés.

Je vous explique un peu ma méthode, elle intéressera surement les débutants, ou ceux qui veulent construire des applications très simples, et permettra d'y voir clair :

Cela suppose d'avoir auparavant créé les kml qu'on souhaite utiliser, et qu'ils soient stockés sur le web.
Dans une page html, dans les balises "body", j'appelle GoogleEarth en insérant ce simple code :

Code:

<script type="text/javascript" src="https://www.google.com/jsapi"> </script>
<script>
    var ge;
    google.load("earth", "1");
    function init() {
      google.earth.createInstance('map3d', initCB, failureCB);
    }
    function initCB(instance) {
      ge = instance;
      ge.getWindow().setVisibility(true);
    }
    function failureCB(errorCode) {
    }
    google.setOnLoadCallback(init);
</script>
<div id="map3d" style="height: 750px; width: 1500px;"></div>

(Et ici déjà j'ai une question : je n'ai pas utilisé la fameuse clé de l'Api GoogleEarth, et cela marche quand même. Je crois que c'est une ancienne version de GoogleEarth (sans la 3D), mais c'est suffisant pour l'instant. Cela dit est-ce régulier ? Et surtout est-ce fiable ?)

J'appelle ensuite l'un de mes kml, qui va se superposer directement dans GoogleEarth, en insérant ce code, toujours dans la balise "body", mais dans un nouveau "script" :

Code:

<script>
    function initCB(CACP) {
      ge = CACP;
      ge.getWindow().setVisibility(true);
      var link = ge.createLink('');
         var href = 'http://cartoperso.fr/GM/CACP.kml'
         link.setHref(href);

         var networkLink = ge.createNetworkLink('');
         networkLink.set(link, true, true); // Sets the link, refreshVisibility, and flyToView.

         ge.getFeatures().appendChild(networkLink);
    }
</script>

À l'intérieur de ce dernier "script", je n'ai qu'à copier-coller la fonction, changer l'url du kml par un autre, pour faire apparaître tous mes kml. Très bien.

Je souhaiterais maintenant créer un bouton qui permettrait de cocher/décocher l'un de ces kml.
Avec mes maigres connaissances en html/JavaScript, j'ai testé plusieurs solutions, sur plusieurs boutons, en changeant les attributs des boutons, des fonctions...mais sans succès.
De toute évidence, je ne maîtrise pas la syntaxe et l'emplacement des boutons et fonctions html. J'ai donc quelques questions :

- Les kml ainsi utilisés supportent-ils de tels boutons ?

- Où faut-il placer sa fonction ( dans mon cas le dernier code, l'appel du kml) pour qu'elle ne s'exécute pas au démarrage de la page, mais bien sur l'appel d'un bouton ?

- Comment paramétrer ce bouton pour le lier à cette fonction ?

Pour l'instant, j'ai utilisé ce bouton, ainsi paramétré, mais sans succès :

Code:

<INPUT TYPE="button" NAME="bouton" VALUE="CACP" onClick="initCB(CACP)">

Voilà tout, merci d'avance !

Hors ligne

 

#2 Fri 17 August 2012 15:30

Georgie
Participant assidu
Date d'inscription: 28 May 2011
Messages: 232

Re: GoogleEarth et les fichiers kml (contrôleurs de couches en html et js)

Ce pdf a répondu à quasiment toutes mes questions, (en tout cas tout fonctionne !) :

http://www.geometre-vd.ch/upload/tblInf … ument2.pdf

La seule différence est que pour appelé GoogleEarth, j'ai utilisé pour propre code, cité au début de la discussion. Après j'ai suivi les instructions, idéal pour les débutants !

Merci aux auteurs !!!

Hors ligne

 

#3 Thu 30 August 2012 22:26

Atelier3DCité
Juste Inscrit !
Lieu: La Chapelle Basse Mer
Date d'inscription: 15 Jul 2008
Messages: 7
Site web

Re: GoogleEarth et les fichiers kml (contrôleurs de couches en html et js)

Bonjour Georgie,
concernant l'API Google Earth es-tu allé voir aussi le fameux site de GeoTribu : http://geotribu.net/node/23 ?
Personnellement j'y ai beaucoup appris !
Sinon tu peux aller décortiquer une page que j'avais faite il y a quelque temps avec des cases à cocher :

http://3dcite.fr/cl_archi/poirier/monni … fov2.html#

les fichiers appelés sont des kmz (fichiers 3D) mais cela fonctionne pareil avec des kml.
J'utilise des mises en page CSS donc tu trouveras les cases à cocher dans le code source ainsi:

Code:

<div id="bouton1">
              <p>
                <input type='checkbox' id="kml-Projet2010Nord-check" onclick="toggleKml('Projet2010Nord');" checked="checked"/>
                <label for="Projet2010Nord">Projet nord</label>
                <input type='checkbox' id="kml-Projet2010Sud-check" onclick="toggleKml('Projet2010Sud');" checked="checked"/>
                <label for="Projet2010Sud">Projet sud</label>
              </p>
              <p>(activez ou d&eacute;sactivez les projets 2010 en 3D)</p>
            </div>

qui appellent les fichiers kmz codés en 2 endroits ...

function finished(object) {...... et  function toggleKml(file) {.....

Bonne soirée


Bruno Redureau

Hors ligne

 

#4 Tue 11 September 2012 23:44

Georgie
Participant assidu
Date d'inscription: 28 May 2011
Messages: 232

Re: GoogleEarth et les fichiers kml (contrôleurs de couches en html et js)

J'adore la façon dont la caméra zoome quand on clique sur le bouton "Le projet" de votre page !

Je viens juste de l'intégrer à une checkbox qui affiche un kml : le kml apparaît, puis la caméra zoome à un point prédéfini, dans un angle prédéfini, ce qui est très joli !

Seul bug, la checkbox devient une sorte de lien, le simple fait de cliquer dessus la lance, cochée ou non-cochée, il faut donc la repasser en vrai lien et créer une fonction dédiée ! Je vais faire ça très bientôt !

Merci !

Dernière modification par Georgie (Wed 12 September 2012 11:06)

Hors ligne

 

Pied de page des forums

Powered by FluxBB