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 :

Information sur le 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 Information sur le Marker
    Bonjour ,

    toujours dans le cadre de mon projet . Je souhaiterais que le visiteur puisse avoir des informations sur le Marker (qui représentent des bateaux dans mon cas )

    voici le format du fichier TXT
    26-05-2013,12:12:29,44.593768,-1.22868, bat1
    31-05-2013,19:24:42,43.558622344591,4.0805150764906,bat2
    00-00-0000,00:00:00,43.387304,4.809173,bat3
    00-00-0000,12:12:29,46.145232,-1.167668,bat4

    voici le script qui permet traiter avec explode les latitudes et longitudes. Je suis preneur de toutes suggestions.
    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
    20
    21
    <?php
    $indice = 0;
    echo "var data = [];\n";  
    $file = fopen( "fichierG.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[2];
          $lat = $liste[3];
          if( is_numeric( $lon) && is_numeric( $lat)){
            echo "data[", $indice ,"]=[", $lon , "," , $lat ,"];\n";
            $indice++; 
          }
        }  
      }
      fclose( $file);
    }  
    ?>

    Cordialement

  2. #2
    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éponds a moi même

    J'ai dans le code toutes les données a exploiter
          $date = $liste[0];<---- la date
          $heure = $liste[1];<----- l'heure
          $lon = $liste[2];<-------- longitude
          $lat = $liste[3];<------ latitude
          $bat = $liste[4]<----- nom du bateau
    
    Je n 'arrive pas a comprendre comme faire pour que ces informations date ,heure, et nom du bateau apparaisse au passage de la souris.

    Cela se passe bien évidement ici mais comment ?? en V2 et php je sais faire mais pas la....
    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
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    function initCarte() {
      var i, nb = data.length;
      var oMarker;
      var oMap = new google.maps.Map(document.getElementById('div_carte'),{
      'center': new google.maps.LatLng( 46.2,2),
          'zoom': 5,
          'backgroundColor': '#fff',
          'mapTypeId': google.maps.MapTypeId.HYBRID
        });
     
      for( i=0; i < nb; i++){
        oMarker = new google.maps.Marker({
            'map' : oMap,
            'position': new google.maps.LatLng( 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>

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    Bonjour,
    avant d'utiliser des données coté client, il te faut les récupérer, ce que l'on ne voit pas dans ton code.

    Ensuite, il y à la http://javascript.developpez.com/faq...s/?page=Marker

    Recherche la propriété title des marker.

  4. #4
    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 NoSmoking,


    Pas vu cette rubrique merci.

  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
    Pour répondre a ton interrogation je récupère les données comme ceci

    FichierG.txt = 01-06-2013,20:49:30,44.663144,-1.151637,bat1,

    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
    20
    21
    22
    23
    24
    25
    26
    <?php
    $indice = 0;
    echo "var data = [];\n";  
    $file = fopen( "fichierG.txt", "r");
    if( $file){
      while( !feof( $file)){
        $buffer = fgets( $file);
        $buffer = preg_replace('/\r\n/', '', $buffer);
        $liste = explode(",", $buffer);    
        if( count( $liste) > 0){
     
          $date = $liste[0];
          $heure = $liste[1];
          $lon = $liste[2];
          $lat = $liste[3];
          $bat = $liste[4];
     
          if( is_numeric( $lon) && is_numeric( $lat)){
            echo "data[", $indice ,"]=[", $lon , "," , $lat ,"];\n";
            $indice++; 
          }
        }  
      }
      fclose( $file);
    }  
    ?>

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    Pour répondre a ton interrogation je récupère les données comme ceci
    certes mais où les transmets tu coté client?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "data[", $indice ,"]=[", $lon , "," , $lat ,"];\n";
    en tout cas pas là!

  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
    oui tu as raison

    j 'ai essayé de passer les variables a cet emplacement du script mais cela plante le script ... dans mon tableau pourtant je retrouve bien dans ce cas le résulta de mes variables


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "data[", $indice ,"]=[", $lon , "," , $lat ,"," , $bat ,"," , $date ,"," , $heure ,"];\n";
    Resulta

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var data = [];
    data[0]=[44.663144,-1.151637,L'OCCITAN,01-06-2013,20:49:30];
    data[1]=[43.558622344591,4.0805150764906,ba1,31-05-2013,19:24:42];
    data[2]=[43.387304,4.809173,bat2,00-00-0000,00:00:00];
    data[3]=[46.145232,-1.167668,bat3,00-00-0000,12:12:29];

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    Attention, comme le montre la coloration de code les apostrophes doivent se trouver entre guillemets pour ne pas planter le script.
    Tu devrais obtenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data[0]=[44.663144,-1.151637,"L'OCCITAN","01-06-2013","20:49:30"];
    à mettre pour les autres paramètres qui sont de type chaine.

    Tu pourrais également t'en sortir avec, dans ta boucle, une syntaxe du type
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau[] = array( $lon, $lat, $bat, $date, $heure);
    et faire en sortie de boucle un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "data = " .json_encode($tableau );

  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
    bonsoir,

    j 'ai suivi tes conseils avisés et cela fonction plus de plantage du script.
    j 'en ai profité pour reformater les données c’était un gros Bor.....

    BAT1,01-06-2013,20:49:30,44.663144,-1.151637,


    Maitenant il faut que je trouve le moyens de passer les infos dans une infobulle ou juste dans le titre du marker .....


    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
    20
    21
    22
    23
    24
    <?php
    $indice = 0;
    echo "var data = [];\n";  
    $file = fopen( "fichierx.txt", "r");
    if( $file){
      while( !feof( $file)){
        $buffer = fgets( $file);
        $buffer = preg_replace('/\r\n/', '', $buffer);
        $liste = explode(",", $buffer);    
        if( count( $liste) > 0){
     
          $bat = $liste[0];
          $date = $liste[1];
          $heure = $liste[2];
          $lon = $liste[3];
          $lat= $liste[4];
     
          $tableau[] = array( $bat, $date, $heure, $lon, $lat);
        }
      }
      fclose( $file);
    }  
    echo "data = " .json_encode($tableau );
    ?>

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    Il existe également http://javascript.developpez.com/faq...age=InfoWindow dans laquelle tu devrais trouver ton bonheur.

  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
    Bonjour me revoilou !


    Alors, alors

    Merci pour le tuto c'est génial

    j 'ai complété le script comme cela et pourtant pas d'infobulle sur la carte

    Je me pose aussi la question dois je refaire un boucle pour insérer mon infobulle ou l 'intégrer dans la première. comme cela ne marche pas je n'ai pas de réponse a cette question


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for (i = 0; i < nb; i++) {
      oMarker = new google.maps.Marker({
        'map': oMap,
        'position': new google.maps.LatLng(data[i][0], data[i][1])
      });
    }
    for (i = 0; i < nb; i++) {
      var oMaker = new google.maps.InfoWindow({
        'map': oMap,
        'position': new google.maps.LatLng(data[i][0], data[i][1]) // position d'ancrage de l'InfoWondow sur la carte
        'content': 'Le centre de la <b>TEST</b> n\'est pas loin !' // test
      });
    }

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    j 'ai complété le script comme cela et pourtant pas d'infobulle sur la carte
    de façon incomplète, il faut un événement pour déclencher l'ouverture de l'infoWindow.

    Un question se pose qu'en même, une infoWondow commune à tous les markers, ou une infoWindow par marker?

  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
    "de façon incomplète, il faut un événement pour déclencher l'ouverture de l'infoWindow."

    Je comprends et je fais des recherches

    en réalité je voudrais passer les infos contenues dans mes variables , nom du bateaux , heure ect...

  14. #14
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    en réalité je voudrais passer les infos contenues dans mes variables , nom du bateaux , heure ect...
    je pense que cela on l'avait bien compris

    Il te faut bien lire les exemple de la FAQ et notamment http://javascript.developpez.com/faq...indowAffichage, qui te donne la solution, ou pas loin.

    Citation Envoyé par NoSmoking
    Un question se pose qu'en même, une infoWondow commune à tous les markers, ou une infoWindow par marker?
    ???

  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
    Une infobulle par bateaux

  16. #16
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    Tu as un code complet d'utilisation Comment afficher une InfoWindow au-dessus des autres ?

  17. #17
    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
    Merci beaucoup,

    Mais c'est trop compliqué pour moi la... Mon projet est juste a titre perso pour suivre mon petit bateau en mer donc la je suis un peu dépassé. en réalité avec votre aide je suis arrivé a 80% du projet

    Il me manque

    Les infos windows

    Polyline


    Un grand merci a tous et toutes

  18. #18
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    Les infos windows
    qu'est ce que tu ne comprends pas, la faq m'a l'air pourtant très abordable


    Polyline
    voir exemple concret sur ce forum

  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 suis tés admiratifs des pro du code j 'aurais tant aimer faire cela par moi même. Mais je dois avouée que je suis plus que pas bon ( je te rassure je suis meilleurs dans d'autre domaine)

    Voici un exemple d'une petite croisière faites en 2011 ? C'est pas très beau ..
    alors tu vas me dire qu'il existe des site qui font cela très bien ... oui mais moi je veux pas être dépendent de sites pro.. Je sais, je sais je suis difficile.
    je ne trouve pas comment faire un trajet avec une polyligne colorée en rouge donc je vais me contenter de mes petits marker tout vilains

    Mon voyage 2011


    ,http://www.maritime-position.fr/GPS/...s/laro2011.php

  20. #20
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 677
    Points
    44 677
    Par défaut
    le lien que je t’ai indiqué contient toutes les informations nécessaires à la réalisation du tracé via une PolyLine.

    exemple de ce que cela pourrait rendre
    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
    function initCarte(){
     
      var i, nb = data.length;
      var oMarker, oPolyline, oPath =[];
      var oMap = new google.maps.Map(document.getElementById('div_carte'),{
          'center': new google.maps.LatLng(46.07847,-1.218216),
          'zoom': 10,
          'backgroundColor': '#fff',
          'streetViewControl': false,
          'zoomControlOptions': {
            'style': google.maps.ZoomControlStyle.SMALL
          },
          'mapTypeId': google.maps.MapTypeId.ROADMAP
        });
      // on boucle sur les données
      for( i=0; i < nb; i++){
        // création du marker, optionnel
        oMarker = new google.maps.Marker({
            'map' : oMap,
            // icone personalisée
            'icon':{
              'path': google.maps.SymbolPath.CIRCLE,
              'fillColor': 'white',
              'fillOpacity': 0.5,
              'scale': 6,
              'strokeColor': 'red',
              'strokeWeight':1
            },
            'position': new google.maps.LatLng( data[i][0], data[i][1])
          });
         // stocke les donnees au format new google.maps.LatLng
         oPath.push( new google.maps.LatLng( data[i][0], data[i][1]));
      }
      // creation de la polyline trajet
      oPolyline = new google.maps.Polyline({
          'path' : oPath,
          'map': oMap,
          'strokeColor': "#FF0000",
          'strokeOpacity': 0.6,
          'strokeWeight': 3
        });
    }

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 12/12/2004, 14h25
  2. Réponses: 6
    Dernier message: 28/04/2004, 10h41
  3. Réponses: 3
    Dernier message: 01/02/2004, 21h24
  4. Informations sur les procédures stockées
    Par jfphan dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/01/2004, 14h30
  5. Réponses: 6
    Dernier message: 28/09/2003, 17h49

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