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 :

Afficher un kml au clic sur un marqueur [Google Maps]


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Par défaut Afficher un kml au clic sur un marqueur
    Bonjour,
    Actuellement sur une carte, j'affiche des markers issus d'une base mysql pour positionner différents parcours Vtt dans un département. Chaque clic sur un marker déclenche l'ouverture d'une popup avec les infos correspondantes au parcours sélectionné. Les markers sont de couleurs différentes suivant la difficulté des parcours. Jusque là tout va bien, et même si mon code n'est pas forcément très propre cela fonctionne. -->voir la carte.
    j'aimerai maintenant qu'en plus de l'événement popup, le clic sur le marqueur déclenche en même temps l'affichage du Kml associé ... mais je n'y arrive pas, tout ce que j'essaie pour faire afficher une fonction "addkml?" au clic de la souris sur le marker échoue
    un peu d’aide serait la bienvenue
    cordialement Jacques

  2. #2
    Membre confirmé Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Par défaut
    Bonjour,

    J'avance un peu dans mon souci d'affichage. J'arrive à afficher une trace au clic sur un marker (en plus du popup) avec un addlistener et une fonction new google.maps.KmlLayer :

    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
    25
    26
    function addMarker4(lat, lng, info) {
       var pt = new google.maps.LatLng(lat, lng);
       bounds.extend(pt);
       var marker = new google.maps.Marker({
          position: pt,
          icon: icon4,
          map: map
       });
     
       var popup = new google.maps.InfoWindow({ 
          content: info,
          maxWidth: 350
       });
       google.maps.event.addListener(marker, "click", function() {
       if (currentPopup != null) {
          currentPopup.close();
          currentPopup = null;
       }
       popup.open(map, marker);
          currentPopup = popup;
       });
       google.maps.event.addListener(marker, "click", function() {
          ctaLayer = new   google.maps.KmlLayer('http://vttplus.net/file/departementkml/04.kml');
          ctaLayer.setMap(map);
       });
    }
    Ca fonctionne mais bien sur j'affiche chaque fois la même trace kml (new google.maps.KmlLayer('http://vttplus.net/file/departementkml/04.kml')... Comment faire pour prendre en compte dans ma boucle while l'adresse url des kml qui est dans ma base <$contenu=$row['urlkml'];> (ci-dessous ma boucle while).

    Code php : 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
     
    $requete4 = mysql_query("SELECT * FROM donnees where  numerodep=83 and difficulte= 4");
    while ($row = mysql_fetch_array($requete4)){
       $nom=$row['nom'];
       $dif=$row['difficulte'];
       $denivplus=$row['denivplus'];
       $denivmoins=$row['denivmoins'];
       $altiplus=$row['altiplus'];
       $altimoins=$row['altimoins'];
       $duree=$row['duree'];
       $kms=$row['kms'];
       $lat=$row['parcourslat'];
       $lon=$row['parcourslong'];
       $departville=$row['departville'];
       $article=$row['article_id'];
       $departdesc=$row['departdesc'];
       $contenu=$row['urlkml'];
       echo ("addMarker4($lat, $lon,'<img src=\"http://vttplus.net/img/icone/fleche.png\"/>&nbsp;<font color=\"#551A8B\" size=4><b>$nom</b></font><br/><br/><u>départ:</u> $departdesc -> <b>$departville</b> <br/><br/><img src=\"http://vttplus.net/img/gif/vttdifficulte$dif.gif\" border=\"0\" width=\"28px\"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sur les cartes -> <a href=\"http://vttplus.net/file/cartes_ign/$nom/igntopo.php\"><img src=\"http://vttplus.net/img/carto/IGN.ht3.jpg\" border=\"0\"  width=\"28px\"/></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;en 3D ->  <a href=\"http://vttplus.net/file/cartes_ign/$nom/gearthtopo.php\"><img src=\"http://vttplus.net/img/carte_profil/3d/globe.gif\" border=\"0\"  width=\"28px\"/></a></a><br/><br/>D+:<b>$denivplus</b>m   D-:<b>$denivmoins</b>m  <br/>altimaxi:<b>$altiplus</b>m   altimini: <b>$altimoins</b>m<br/>durée:<b>$duree</b>h   distance: <b>$kms</b>kms<br/><br/><a href=\"http://vttplus.net/articles.php?lng=fr&pg=$article&tconfig=1\"><b>description du parcours</b></a>');\n");
    }

    Merci pour votre aide.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    - pourquoi ne pas mettre tout dans l'événement onclick du marker ?
    - pourquoi plusieurs fonctions qui font la même chose ?

  4. #4
    Membre confirmé Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Par défaut
    bonjour NoSmoking,
    - pourquoi ne pas mettre tout dans l'événement onclick du marker ?
    - pourquoi plusieurs fonctions qui font la même chose ?
    c'est tout bête, toutes mes tentatives pour réunir les 2 fonctions ont échoué (je sais je ne suis pas très doué) ... j'ai donc ajouté les 2 mêmes fonctions à la suite . Mais ça ne résous ma mon souci d'affichage des kml dans la boucle while
    cordialement

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Il te faut passer à la fonction la référence au fichier KML correspondant et ne pas la mettre en commun.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function addMarker(lat, lng, info, kml){
      // le code
    }
    D'autre part tout ce qui est commun, ex: <img src=\"http://vttplus.net/img/icone/fleche.png\"/>, n'a rien à faire dans les paramètres passés à la fonction, cela allège le code et améliore la clarté de celui ci

  6. #6
    Membre confirmé Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Par défaut
    re
    c'est fou, ta seule indication de rajouter ,kml dans la fonction a suffit (ça fait 2 jours que je suis dessus) ... ça marche merci. Puisque je te tiens, j'ose , il me reste quelques autres soucis:
    1/ comment faire pour éviter qu'à l'affichage du kml la carte zoom au plus proche du kml (je voudrais garder le zoom original d'affichage des markers) ?
    2/ J'ai rentré l'adresse des fichiers kml avec des espaces dans les noms (dossiers et fichiers) et seuls les fichiers (et dossiers) dont les noms sont sans espaces s'affichent sur ma carte au clic sur le marker ... comment faire pour éviter de modifier tous les éléments de ma bdd en ajoutant %20 à la place des espaces ?
    cordialement

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

Discussions similaires

  1. Afficher un élément au clic sur un bouton
    Par auberstar dans le forum jQuery
    Réponses: 2
    Dernier message: 25/03/2013, 16h38
  2. CS5 / Afficher une image au clic sur un bouton
    Par yan1s dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 14/05/2012, 09h44
  3. [XL-2003] Masquer ou afficher des lignes suivant clic sur bouton voulu
    Par stephj dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2011, 09h41
  4. [Google Maps] Afficher des infos après clic sur un point
    Par jbaudin dans le forum APIs Google
    Réponses: 0
    Dernier message: 24/12/2008, 11h54
  5. Afficher une image au clic sur un bouton
    Par lycaon dans le forum Général VBA
    Réponses: 4
    Dernier message: 23/04/2007, 19h21

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