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 :

Changer le "title" d'un marker [Google Maps]


Sujet :

APIs Google

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut Changer le "title" d'un marker
    Bonjour,

    voici un code qui me pose problème. je voudrais donner un titre a tous les marker présents sur la carte
    Je vais commencer par leur donner le même nom. Je bute sur le code au niveau du title comme sur le code suivant
    Pouvez vous m'aider

    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (i = 0; i < nb; i++) {
        oMarker = new google.maps.Marker({
            'optimized': false,
            'map': oMap,
            icon: monIconPerso,
            'position': new google.maps.LatLng(data[i][0], data[i][1])
        });
        oMarker = new google.maps.Marker({
            'map': oMap,
            title: "TEST MARKER"'position': new google.maps.LatLng(data[i][0], data[i][1])
        });
    }

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new google.maps.LatLng(data[i][0], data[i][1])
    Ceci est un objet de type google.maps.LatLng, tu ne peux l'afficher dans une chaîne de caractère (enfin pas en tant que tel en tout cas).

    Voici qui sera déjà mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    title: "TEST MARKER position : ("+data[i][0]+", "+data[i][1]+")"
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Bonjour Spartacusply,

    Merci pour ton aide. j 'ai donc modifier le code mais toujours pas de Title sur mes marker. Aucune erreur sur la carte en revanche.







    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
     
     
     
     for (i = 0; i < nb; i++) {
        oMarker = new google.maps.Marker({
            'optimized': false,
            'map': oMap,
            icon: monIconPerso,
            'position': new google.maps.LatLng(data[i][0], data[i][1])
     
     
        });
        oMarker = new google.maps.Marker({
            'map': oMap,
            title: "TEST MARKER position : ("+data[i][0]+", "+data[i][1]+")"
        });
     
     
     
     
     
      }  
    }

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Le marker avec un title n'est pas placé sur la carte. Pourquoi en créer deux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        oMarker = new google.maps.Marker({
            optimized: false,
            map: oMap,
            icon: monIconPerso,
            position: new google.maps.LatLng(data[i][0], data[i][1])
            title: "TEST MARKER position : ("+data[i][0]+", "+data[i][1]+")"
     
        });
    Je crois que tu as un soucis avec le "new", qui signifie instanciation d'un nouvel objet. Si ce que je viens de dire ne te parle absolument pas, il serait peut-être bon de revoir les bases de la POO
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Ok je reconnais mes grandes lacunes en ce domaine .

    Mais après modification du code j 'ai une erreur sur la carte ( elle ne saffiche pas)



    l 'erreur est provoquée par cette partie de code ( je cherche)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    title: "TEST MARKER position : ("+data[i][0]+", "+data[i][1]+")"
    cordialement,

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    En effet si tu ne l'a pas corrigé j'ai oublié une virgule, à la fin de la ligne ou il y a "position"
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    bonsoir,

    oui j 'avais corrigé :=) Merci bcp de ton aide


    J 'ai juste une dernière question pour finir mon projet. Je récupère dans mon fichier txt des lignes sous ce format


    ,Mobi1,06-03-2014,13:52:17,47.358964199999996,1.7573474999999998,1394132352
    ,Mobil2,06-03-2014,13:52:17,47.358964199999996,1.7573474999999998,1394132352


    Je cherche à indiquer dans le "Title" Mobi1,47.358964199999996,1.7573474999999998 le nom de l 'utilisateur et sa lat et long

    Mais j 'ai une erreur la carte ne s'affiche pas. Je regarde le code et pourtant je ne vois pas d'erreur !!!!!


    Le code dans le html semble bon


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var data = [];
    data[0]=[Mobi1,47.358964199999996,1.7573474999999998];
    data[1]=[Mobi2,47.358964199999996,1.7573474999999998];


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    <?php
     
    $indice = 0;
    echo "var data = [];\n";  
    $file = fopen( "http://www.xxxx/TEST/clea.txt", "r");
    if( $file){
      while( !feof( $file)){
        $buffer = fgets( $file);
        $buffer = preg_replace('/\r\n/', '', $buffer);
        $liste = explode(",", $buffer);    
        if( count( $liste) > 0){
          $lon = $liste[4];
          $lat = $liste[5];
          $speudo = $liste[1];
     
     
          if( is_numeric( $lon) && is_numeric( $lat)){
            echo "data[", $indice ,"]=[", $speudo, ",", $lon , "," , $lat ,"];\n";
            $indice++; 
          }
        }  
      }
      fclose( $file);
    }  
    ?>
     
     
     
     
     
     
    function initCarte() {
    var i, nb = data.length;
     
    var monIconPerso = new google.maps.MarkerImage("http://www.xxxxxx/imgcam/pic.png",
     
    /* dimensions de l'image */
      new google.maps.Size(36,28),
     
     
     
      /* Origine de l'image 0,0. */
      new google.maps.Point(0,0),
     
     
     
    /* l'ancre (point d'accrochage sur la map) du picto
      (varie en fonction de ces dimensions) */
      new google.maps.Point(0,0)
     
     
     
     
    );
     
     
     
    var oMap = new google.maps.Map(document.getElementById('div_carte'),{
     
    'center': new google.maps.LatLng( 47,4),
     
     
     
     'zoom': 6,
     'minZoom' : 6,
     'maxZoom' :15,   
     
          'backgroundColor': '#fff',
          'mapTypeId': google.maps.MapTypeId.HYBRID
        });
     
     
     
     
     
     for (i = 0; i < nb; i++) {
        oMarker = new google.maps.Marker({
            'optimized': false,
            'map': oMap,
            icon: monIconPerso,
            'position': new google.maps.LatLng(data[i][0], data[i][1]),
     
    title: "TEST MARKER: ("+data[i][0]+", "+data[i][1]+")"
     
     
     
        });
     
     
     
     
     
     
     
     
     
     
     
     
      }  
    }
     
     
     
    // init lorsque la page est chargée
    google.maps.event.addDomListener(window, 'load', initCarte);
    </script>
    </head>
    <body>
      <div id="div_carte"></div>
    </body>
    </html>

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Manifestement c'est ma variable "$speudo" qui met le bord......

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    J'ai essayé plusieurs options mais rien ne fonctionne. Je ne trouve pas d'aide spécifique car je ne sais pas identifier le problème. Avez vous une piste de réflexion à me soumettre pour guider ma réflexion et identifier mes erreurs/.

    cordialemant

  10. #10
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    La concaténation de chaîne en php se fait avec des points, pas avec des virgules.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Ok bonjour et merci Spartacusply
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "data[", $indice ,"]=[", $speudo, ",", $lon , "," , $lat ,"];\n"; // <=  pas ok
    echo "data[", $indice ,"]=[", $lon , "," , $lat ,"];\n"; <= ok
    avec la ligne de code 1 pas d'affichage de la carte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo   "data[", $indice ,"]=[", $speudo, ",", $lon , "," , $lat ,"];\n"; // <=  pas ok
    Mais,
    Dans le code html j 'ai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var data = [];
    data[0]=[Mobi,47.35896,1.7572974]

    Je n'arrive pas a comprendre le problème avec la Concaténation peux tu préciser ta pensé?


    Cordialement

  12. #12
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    En fait tu utilises du php pour générer du code javascript (ce qui est à éviter mais bon passons...)

    Il te faut rajouter les virgules dans le code généré et concaténer tes chaines avec des points (pour moi tes deux lignes sont "pas ok") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "data[". $indice ."]=[". $speudo.",". $lon.",".$lat."];\n"; 
    echo "data[". $indice."]=[".$lon .",".$lat."];\n";
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    bonsoir,

    toujours le même résulta

    avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "data[". $indice ."]=[". $pseudo.",". $lon.",".$lat."];\n";

    code html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var data = [];
    data[0]=[Mobil,45.201671,0.1284207];
    Page blanche rien ne saffiche ....

  14. #14
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 957
    Points : 44 121
    Points
    44 121
    Par défaut
    Bonsoir,
    dans ce bout de code data[0]=[Mobil,45.201671,0.1284207]; Mobil est considéré comme une variable mais pas comme une chaine, donc acte.

  15. #15
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    bonjour,

    Je comprend bien mais pourtant tout part de c'est trois variables


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
          $lon = $liste[4];
          $lat = $liste[5];
          $pseudo = $liste[1];

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $indice = 0;
    echo "var data = [];\n";  
    $file = fopen( "http://www.xxxxxxx/TEST/xxr.txt", "r");
    if( $file){
      while( !feof( $file)){
        $buffer = fgets( $file);
        $buffer = preg_replace('/\r\n/', '', $buffer);
        $liste = explode(",", $buffer);    
        if( count( $liste) > 0){
          $lon = $liste[4];
          $lat = $liste[5];
          $pseudo = $liste[1];

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Je revien vers NoSmoking


    "dans ce bout de code data[0]=[Mobil,45.201671,0.1284207]; Mobil est considéré comme une variable mais pas comme une chaine, donc acte."

    Je suis désolé je ne comprends pas car les deux autres valeurs sont bien des variables car elle aussi sont extraites comme Mobil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
          $lon = $liste[4];
          $lat = $liste[5];
          $pseudo = $liste[1];




    cdt

  17. #17
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Il faut entouré une chaîne de caractere par des guillemets simple ou double sinon en effet celle ci dera considéré comme une variable (ce qui n'est pas le cas des nombres)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'mobil' // (et non mobil)
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Ok donc je devais avoir ceci dans le code "data[0]=['Mobil',45.201671,0.1284207]; "

  19. #19
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Points : 74
    Points
    74
    Par défaut
    Je répond à moi même

    echo "data[", $indice ,"]=[", $pseudo , ",", $lon , "," , $lat , "];\n"; je ne vois pas comment faire ici pour que la variable $speudo soit comme vous me le suggérée interprété comme une chaîné de caractère avec des ' ' soit comme résulta

    var data = [];
    data[0]=['Mobi',47.35896,1.7572974]

  20. #20
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    En rajoutant les guillemets simples par exemple ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "data[", $indice ,"]=['", $pseudo , "',", $lon , "," , $lat , "];\n";
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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