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 :

Google Map et kml [Google Maps]


Sujet :

APIs Google

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Google Map et kml
    Bonjour,

    Je cherche à savoir si il est possible ou pas de modifier les couleurs ou l'opacité le fond et le contour d'un KML en Javascript.
    A ce jour j'ai testé via :
    - KmlLayer : Impossible
    - geoXML3.parser : Impossible

    Auriez vous une idée pour lire le KML et modifier ces paramètres d'apparence ?

    Merci d’avance.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Bonjur,
    A ce jour j'ai testé via :
    - ...
    - geoXML3.parser : Impossible
    avec goeXML3 il est tout à fait possible de modifier les options.

    Pour atteindre on doit pas être loin de...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    oKmlParser = new geoXML3.parser({
      'map': oMap,
      'afterParse': function (data) {
        for (var i = 0; i < data.length; i++) {
          data[i].gpolygons[0].setOptions({
            'fillColor': '#EEFFFF',
            'fillOpacity': 1,
            'strokeWeight': 0
          });
        }
      }
    });
    par exemple

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Merci pour ta solution. Cela fonctionne mais je n'arrive pas a comprendre la notion de hiérachie / Objet

    Voilà mon code qui fonctionne (pas fini)
    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
    19
    20
    21
    22
    23
    24
     
                    kmlgeoXMLville = new geoXML3.parser({
                        map: map,
                        zoom: false,
                        afterParse: function (data) {
                            for (var i = 0; i < data.length; i++) {
                                data[i].gpolygons[0].setOptions({
                                    fillColor: '#FF0000',
                                    fillOpacity: 0.2,
                                    strokeColor: '#FF0000',
                                    strokeOpacity: 1
                                });
                                google.maps.event.addListener(data[i].gpolygons[0], "mouseover", function() {
                                    this.setOptions({
                                        fillColor: '#EEFFFF',
                                        fillOpacity: 0.75,
                                        strokeColor: "#FFFFFF",
                                        zIndex: 1
                                    });
                                });
                            }
                        }
                    });
                    kmlgeoXMLville.parse('test.kml');

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    mais je n'arrive pas a comprendre la notion de hiérachie / Objet
    je n'arrive pas à comprendre ce que tu ne comprend pas

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Je déclare une variable "kmlgeoXMLville = new geoXML3.parser"
    Sur cette variable "kmlgeoXMLville" j'ai des fonction / événement etc
    Comment puis je les connaitre ?

    Après avoir parsé mon fichier kml , je recherche le polygon via gpolygons. (d’où ça sort ???) Je ne comprend pas.

    Dans ma logique qui est mauvaise a priori, les options de couleur etc devrait être sur la variable "kmlgeoXMLville" via le paramètre setOptions.

    De ces confusions , incompréhensions, je n'arrive pas à effacer l'ensemble des polygon car je ne sais pas à quel variable attribuer setmap(null) ou autre.
    J'utilise donc kmlgeoXMLville.hideDocument(); sur le mouseout mais cela ne marche pas correctement car les polygon reste affiché de temps en temps.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Sur cette variable "kmlgeoXMLville" j'ai des fonction / événement etc
    Comment puis je les connaitre ?
    Il existe plusieurs sources d'information toutes aussi intéressantes les unes que les autres
    - la documentation officielle si existe http://code.google.com/p/geoxml3/w/list
    - la console des navigateurs source de plein d'informations
    - la lecture de la source pour tout savoir sur les entrailles de la bête ou presque
    - les exemples disponibles sur la toile, attention toutefois ils ne sont pas tous pertinents et bien fait.
    - les dernières qui ne sont pas forcément à négliger sont les réponses faites sur les forums.


    Dans ma logique qui est mauvaise a priori, les options de couleur etc devrait être sur la variable "kmlgeoXMLville" via le paramètre setOptions.
    Pour commencer on déclare un objet "outil" qui est doté de propriétés, méthodes, options
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var oKmlParser = new geoXML3.parser()
    c'est à travers lui que nous allons pouvoir manipuler les fichiers KML.

    Lors de l'utilisation de la méthode parse et dans la fonction de callback nous allons récupérer un objet retourné par le parsage des données contenues dans l'URL référencée.

    Toutes les données concernant les informations en retour sont contenues non pas dans oKmlParser mais dans l'objet retourné. Lorsque l'on regarde ce que peux contenir un fichier KML autant dire quelles peuvent être très diverses.
    KML Elements Supported in Google Maps

    Typiquement changer les options de couleur des polygones récupérés ne se fait pas en jouant sur l'objet oKmlParser qui n'est qu'un traducteur, mais avec les polygones, polylines, markers etc... de l'objet récupéré.

    Prenons par exemple un livre à traduire, pour ce faire tu utiliseras les services d'un traducteur qui te rendra un objet traduit.
    Si par la suite tu veux changer la police de caractère le traducteur ne pourra rien faire pour toi, c'est un peu raccourci mais c'est en gros le principe.

    Maintenant si tu lui demandes une autre traduction il te la fera et te retournera un autre objet traduit mais possiblement différent du précédent.
    Si ensuite tu veux effectuer des modifications sur la première traduction il te faudra redemander au traducteur l'objet traduit sauf si tu as sauvegardé les données du premier objet.


    ...mais cela ne marche pas correctement car les polygon reste affiché de temps en temps
    Il t'appartient donc de sauvegarder les données reçues si tu veux les utiliser après, sans cela les modifications/actions seront appliquées sur le dernier exemplaire de l'objet reçu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    oKmlParser = new geoXML3.parser({
      'map': oMap,
      'afterParse': function (data) {
        for (var i = 0; i < data.length; i++) {
          data[i].gpolygons[0].setOptions({
            'fillColor': '#EEFFFF',
            'fillOpacity': 1,
            'strokeWeight': 0
          });
        }
        tabPolygones.push(data[i].gpolygons[0]); // sauvegarde de la référence de l'élément récupéré
      }
    });
    et pour les effacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var i,
        nb = tabPolygones.length;
    for( i=0; i < nb;i++){
      tabPolygones[i].setMap(null);
    }
    cela fonctionnera et ce quelque soit le nombre de fois où tu auras fait appel aux services de oKmlParser.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup pour cette réponse très complète, qui je suis sur va mieux me faire comprendre ces mécanismes de Google map.

    Merci encore NoSmoking

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Google Maps] Google maps et KML
    Par mely_84 dans le forum APIs Google
    Réponses: 2
    Dernier message: 26/03/2013, 12h07
  2. [Google Maps] Google map Données KML
    Par pelloq1 dans le forum APIs Google
    Réponses: 0
    Dernier message: 27/01/2011, 16h44
  3. [Google Maps] Carte avec plusieurs KML chargés
    Par SylvainM dans le forum APIs Google
    Réponses: 1
    Dernier message: 19/06/2009, 14h36
  4. charger un fichier KML via google maps
    Par taobang dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 06/05/2009, 12h04
  5. google api map avec kml file
    Par speed034 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/12/2008, 07h57

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