IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Affichage objets kml distincts dans API Google Earth


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Par défaut Affichage objets kml distincts dans API Google Earth
    Bonjour à tous et tout d'abord un grand merci pour ce site riche en données, sympathique et de qualité.
    N'étant pas de la partie informatique, je l'ai parcouru au début par curiosité et puis au fil du temps il m'a servi indirectement pour quelques applications (site web, API GoogleMap et GoogleEarth....).

    S'agissant de l'API GoogleEarth, je travaille actuellement à la modélisation d'objet référant à l'architecture et je souhaiterais présenter sans changement de page les deux versions "état actuel" (kml = BourgExis.kmz) et "projet" (kml = BourgProj.kmz) sur un lieu donné conservé (kml : BourgCons.kmz).

    Ma page fonctionne actuellement avec deux cases "checkbox" ce qui n'est pas trés heureux car donnant la possibilité d'afficher les 2 fichiers "existant" et "projet" en même temps.

    Aussi je souhaiterais avoir la même fonction avec simplement deux boutons radio, ou mieux deux simples boutons !

    J'ai mis la page en ligne ici pour le code source
    (nécessite le Plugin Google pour première utilisation)

    J'ai essayer plusieurs modifications du code mais sans résultat. Je manque de connaissance en javascript (et en programation en général).

    Si quelqu'un pouvait me donner l'astuce sans doute simple, j'en serais ravi.

    Et merci à l'avance. Bruno

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Par défaut
    Bonjour , je poursuis sur ma lancée et j'ai simplifié l'API Google Earth pour obtenir cette page avec deux boutons :



    avec la déclaration de la clé (à obtenir auprès de Google) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="http://www.google.com/jsapi?key=ABQIxxxxxxxxxxxxxxxx"></script>
    la déclaration de la carte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    google.load("earth", "1"); 
     
     
    var ge; 
     
     
    function onLoad() { 
      google.earth.createInstance("map3d", initCB, failureCB); 
    }
    l'initialisation des différents layers (terrain, routes, bâtiments3D initiaux, limites, contrôles de navigation...etc) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function initCB(object) { 
      ge = object; 
      ge.getWindow().setVisibility(true);
      ge.getOptions().setMouseNavigationEnabled(true);
     
      var layerRoot = ge.getLayerRoot();
      layerRoot.enableLayerById(ge.LAYER_TERRAIN, true);
      layerRoot.enableLayerById(ge.LAYER_ROADS, false);
      layerRoot.enableLayerById(ge.LAYER_BUILDINGS, false);
      layerRoot.enableLayerById(ge.LAYER_BORDERS, true);
      ge.getOptions().setFlyToSpeed(.50); 
     
      ge.getNavigationControl().setVisibility(ge.VISIBILITY_HIDE);
     
      ge.getOptions().setStatusBarVisibility(false);
      ge.getOptions().setOverviewMapVisibility(false);
      ge.getOptions().setScaleLegendVisibility(false);
      ge.getOptions().setGridVisibility(false);
    le positionnement de la vue sur le site par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     var la = ge.createLookAt('');
      la.set(47.272237,-1.338813, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, 
             -90, 30, 250); //180, 60, 500);
      ge.getView().setAbstractView(la);
    ce peut être aussi par "Camera"

    l'activation du fichier kmz du bâti conservé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function finished(object) 
      {
             if (!object) {
               alert('KML mal formé');
               return;
             }
             ge.getFeatures().appendChild(object);
           }
     
           var kmlCons = 'http://3dcite.fr/google_earth/kmz/projbourg01/BourgCons.kmz';
           google.earth.fetchKml(ge, kmlCons, finished);
    et ensuite ce qui m'intéresse, la fonction pour le bouton "voir le projet" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function addKmlProj() { 
      var urlProj = "http://3dcite.fr/google_earth/kmz/projbourg01/BourgProj.kmz"; 
      google.earth.fetchKml(ge, urlProj, function(kmlObject) { 
        ge.getFeatures().appendChild(kmlObject); 
      }); 
    }
    lié au bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <input type="button" value="Voir projet" onclick="addKmlProj();"/>
    celui-ci fonctionne correctement et fait apparaitre l'objet "projet"


    Et là je cale pour le second bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <input type="button" value="Effacer projet" onclick="supKmlProj();"/>
    auquel je souhaiterais affecter la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function supKmlProj() { 
      var ?????????????????????????
      google.earth.fetchKml(ge, urlProj, function(kmlObject) { 
        ge.getFeatures().removeChild(kmlObject);??????????????
     
      }); 
    }
    ou quelquechose qui y ressemble....
    pour faire disparaitre l'objet "projet". !


    La page à ce jour est :
    http://www.3dcite.fr/forums/essai_ge_01.html

    Si quelqu'un voit une solution à cette colle sans doute trés simple.

    Et merci encore pour ce site. On en apprend tous les jours. Bruno

    PS : juste une petite question pratique, ai-je mis ce message au bon endroit ? ou y aurait-il une rubrique plus adéquate pour l'API Google Earth !

Discussions similaires

  1. [Autres] API Google Earth Balloon qui suit le placemark
    Par mowegan dans le forum APIs Google
    Réponses: 1
    Dernier message: 12/12/2014, 00h29
  2. KML API Geoportail/API Google Earth
    Par georgie2 dans le forum IGN API Géoportail
    Réponses: 9
    Dernier message: 19/10/2012, 14h45
  3. API Google Earth Positon LookAt
    Par mowegan dans le forum APIs Google
    Réponses: 0
    Dernier message: 03/09/2010, 11h56
  4. API Google Earth : Visite virtuelle d'un bâtiment en 3D
    Par GéoGaia dans le forum APIs Google
    Réponses: 2
    Dernier message: 11/11/2009, 09h39
  5. api google earth et google map à l'aide pour intégrer de nouvelles fonctions
    Par didier6526 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2009, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo