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

APIs Google Discussion :

Carte avec plusieurs KML chargés


Sujet :

APIs Google

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 366
    Points : 133
    Points
    133
    Par défaut Carte avec plusieurs KML chargés
    Bonjour à tous,
    J'ai déjà posté ma question sur le Forum SIG dédié au monde des systèmes d'informations géographiques. Mais je me dis finalement que j'aurai peut-être plus de succès ici...
    Voici donc ma question (copié collé du forum SIG à cette adresse)

    Bonjour à tous,

    Préambule : je débute totalement en HTML, encore plus en Javascript, et autres langages barbares...
    Cependant, malgré ces lacunes honteuses, je suis fiers d'avoir plus ou moins adapté certains codes de l'API GoogleMaps (piochés sur différents sites) à mes besoins, et de les avoir intégrés sur un site web !
    Il me reste encore quelques points à approfondir, et je viens donc solliciter l'aide de personnes plus aguerries en la matière.

    Voici donc ma question :
    Je voudrais que dans la "sidebar" de cette page, qui correspond à une table des matières des couches KML chargeables, certaines couches soient cochées dès le chargement de la page, et d'autres non (fonction "toggleGeoXML" je crois). Pour l'instant, c'est toujours la dernière couche qui est chargée (cochée), et les autres non. Je suppose qu'il est possible de choisir la(les) couche(s) cochée(s) ?

    Si oui, pourriez vous m'indiquer comment ?

    (je suppose qu'il y a plein d'erreurs dans le code source de cette page... s'il vous plait m'sieurs dames, soyez indulgents !)

    Sylvain M.
    Je pense que la réponse à ma question est détaillée sur cette page, mais les essais que j'ai fait avec les codes donnés n'ont pas été concluants (peut-être, mon niveau d'anglais ne m'a pas aidé non plus à importer les bonnes parties de codes...).

    J'ai essayé en ajoutant un attribut
    à chaque couche, puis en remplaçant mon code par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(var layer in layers) {     
    addTR(layer, layers[layer].name);     
    document.getElementById(layer).checked = layers[layer].checked;     
    toggleGeoXML(layer, layers[layer].checked);   }
    Mais la carte ne s'affichait plus du tout...

    Est-ce que quelqu'un y comprends quelque chose à ce langage ?

    Merci pour votre aide !!

    Sylvain M.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 366
    Points : 133
    Points
    133
    Par défaut
    Bonjour !

    Bon, finalement, c'est le Forum SIG qui a été le plus rapide cette fois-ci !

    Si jamais quelqu'un passait par là, et rencontrait le même problème, je lui livre donc la solution qui a été trouvée par "baby fess nelson" :

    Citation Envoyé par baby fess nelson
    bon j'ai essayé une solution et ca marche :
    modifie ta fonction onload comme ça :

    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
    function onLoad() {
        map = new GMap2(document.getElementById("map"));     map.setCenter(new GLatLng(49.2, -0.022143), 8);
        map.enableScrollWheelZoom();
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        document.getElementById("url").value = "http://";
     
        for(var layer in layers) {
            addTR(layer, layers[layer].name);
        }
        document.getElementById("Mailles vides").checked = true;
        document.getElementById("Departements Normands").checked = true;
        document.getElementById("Grandes mailles").checked = true;
        toggleGeoXML("Departements Normands", true);
        toggleGeoXML("Mailles vides", true) ;
        toggleGeoXML("Grandes mailles", true) ;
    }
    et ta fonction toogle
    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 toggleGeoXML(id, checked) {
    if (checked) {
    var geoXml = new GGeoXml(layers[id].url);
    GEvent.addListener(geoXml, 'load', function() {
    if (geoXml.loadedCorrectly()) {
    layers[id].geoxml = geoXml;
    //document.getElementById("status").innerHTML = "";
    }
    });
    layers[id].geoXml = geoXml;
    map.addOverlay(layers[id].geoXml);
    //document.getElementById("status").innerHTML = "Loading...";
    } else if (layers[id].geoXml) {
    map.removeOverlay(layers[id].geoXml);
    }
    }
    voilou, chez moi ça marche.....
    Merci encore à lui !

    Sylvain M.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/04/2019, 10h13
  2. Réponses: 1
    Dernier message: 19/06/2018, 19h19
  3. Carte Réseaux avec plusieurs ports
    Par mambo dans le forum Administration
    Réponses: 5
    Dernier message: 18/05/2009, 14h09
  4. Comment utiliser FMod avec plusieurs cartes sons?
    Par NJKMASTER dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/11/2007, 11h43
  5. Shortcut avec plusieurs touches
    Par scorpiwolf dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/07/2002, 15h57

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