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 :

Script php pour Google map hs [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 Script php pour Google map hs
    Je 'arrive pas a positionner les Marker sur ma carte. Les coordonnes proviennent du fichier "archives.txt" suivant

    ,L'OCCITAN,23-05-2013,13:55:41,47.458942591161,1.7572667463669
    ,L'OCCITAN,23-05-2013,13:59:18,47.468943229959,1.757265736904
    ,L'OCCITAN,23-05-2013,14:00:33,47.478942961894,1.757266012874
    ,L'OCCITAN,23-05-2013,14:02:39,47.488945782057,1.7572639824043
    ,L'OCCITAN,23-05-2013,14:04:38,47.498943140567,1.7572658838942
    ,L'OCCITAN,23-05-2013,14:06:39,47.508942895278,1.7572660604737

    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( "archives.txt", "r");
    if( $file){
      while( !feof( $file)){
        $buffer = fgets( $file);
    $buffer = preg_replace('/\r\n/', '', $buffer);
        $liste = explode(",", $buffer);    
        if( count( $liste) > 0){
          $lat = $liste[4];
          $lon = $liste[5];
          if( is_numeric( $lon) && is_numeric( $lat)){
            echo "data[", $indice ,"]=[", $lat , "," , $lon ,"];\n";
            $indice++; 
     
     
     
          }
        }  
      }
      fclose( $file);
    }  
    ?>

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 089
    Points : 44 660
    Points
    44 660
    Par défaut
    Bonjour,
    là c'est un problème de PHP...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if( is_numeric( $lon) && is_numeric( $lat)){
      $tableau[] = array( $lon, $lat);        
    }
    et à la fin tu fais un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "data = " .json_encode($tableau);
    il faut bien sur avoir déclaré un $tableau = array();

  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
    Bonsoir, NoSmoking,


    Mais alors pourquoi ce script fonctionne parfaitement pour ce format de données


    013-05-24T16:45:01.208,43.2187624,12.356792,-23.1,0.5,0.25,37
    2013-05-24T16:45:01.253,43.2438016,12.4116941,-74.7,0.25,0.25,51
    2013-05-24T16:45:41.199,45.5297223,11.9374943,-21.1,0.25,0.25,-61
    2013-05-24T16:45:59.115,45.9051719,13.4377456,-13.9,0.25,0.25,-83
    2013-05-24T16:45:59.136,45.9177913,13.4540478,-27.4,0.25,0.25,-69
    2013-05-24T16:45:59.184,45.9104205,13.44148,-9.2,0.25,0.25,-83
    2013-05-24T16:48:58.595,43.0539412,12.8769022,-24.2,0.75,0.25,49
    2013-05-24T16:49:54.708,53.0260092,5.5975635,-14.1,0.25,0.25,23
    2013-05-24T16:52:13.631,43.3172057,12.8407569,-24.5,0.75,0.25,55
    2013-05-24T16:53:18.177,45.4743634,13.3987519,-41.7,0.5,0.25,49
    2013-05-24T16:54:44.869,45.9575018,11.3304322,-15.2,0.25,0.25,76
    2013-05-24T16:55:45.100,45.6656996,13.2491318,-38.1,4,0.25,-16
    2013-05-24T16:57:01.518,53.024964,5.5739724,-14.9,0.25,0.25,23
    2013-05-24T16:57:11.286,45.583819,11.3318024,-22.3,0.5,0.25,14
    2013-05-24T16:58:27.619,45.886774,13.5448289,-9.5,1.5,0.25,18
    2013-05-24T16:58:46.297,45.9982399,11.1117751,-144.6,0.5,0.25,-36

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 089
    Points : 44 660
    Points
    44 660
    Par défaut
    Mais alors pourquoi ce script fonctionne parfaitement pour ce format de données
    je ne comprend pas la question!!!!

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir

    En PHP, si le tableau $tableau n'existe pas, il sera créé lors de l'assignation.

    A+

  6. #6
    Invité
    Invité(e)
    Par défaut
    Peut-être un problème d'index.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "L'OCCITAN,23-05-2013,13:55:41,47.458942591161,1.7572667463669
    ,"
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [
     "L'OCCITAN",
     "23-05-2013",
     "13:55:41",
     "47.458942591161",   // => index = 3 et pas 4 pour la latitude, idem pour longitude
     ...
    ]
    C'est en ligne 13 et 14.
    J'ai pas regardé plus loin...

    A+

  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

    j'avais bien corriger le problème d'index

    avec comme val 3 lat et 4 long



    pour NoSmoking

    je vaux dire qu'avec cet autres fichier de données cela fonctionne correctement

    et les Maker s’affichent bien sur la carte
    2013-05-24T16:45:01.253,43.2438016,12.4116941,-74.7,0.25,0.25,51
    2013-05-24T16:45:41.199,45.5297223,11.9374943,-21.1,0.25,0.25,-61
    2013-05-24T16:45:59.115,45.9051719,13.4377456,-13.9,0.25,0.25,-83
    2013-05-24T16:45:59.136,45.9177913,13.4540478,-27.4,0.25,0.25,-69
    2013-05-24T16:45:59.184,45.9104205,13.44148,-9.2,0.25,0.25,-83

    l 'explode ce fait avec ces valeurs =============>$lon = $liste[1];
    $lat = $liste[2];


    cdt

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 089
    Points : 44 660
    Points
    44 660
    Par défaut
    vec comme val 3 lat et 4 long
    avec cet enregistrement
    ,L'OCCITAN,23-05-2013,13:55:41,47.458942591161,1.7572667463669
    les index sont :
    • lng -> index 4
    • lat -> index 5
    ne pas oublier l'index 0 dû à la virgule en début de ligne

    avec
    2013-05-24T16:45:01.253,43.2438016,12.4116941,-74.7,0.25,0.25,51
    les index sont
    • lng -> index 1
    • lat -> index 2

  9. #9
    Invité
    Invité(e)
    Par défaut
    Salut NoSmoking

    J'avais bien vu cette "," en début de ligne, d’où mon "peut-être". D'autant que dans un post précédent, je l'ai glissé à la fin le coquin! (bah, quelle idée de mettre une virgule en début).

    D'où ma question sur les index comme tu l'as justement précisé.

    A+

  10. #10
    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,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    2013-05-29T23:45:15.837,41.0188583,12.2513248,-26.3,2.25,0.25,32
      $lon = $liste[3];   ok
       $lat = $liste[4];    ok
     
     
    ,26-05-2013,11:02:05,44.663144,-1.151637  
     
     $lon = $liste[3]; pas ok 
       $lat = $liste[4]; pas ok
    Et bien moi je ne m’explique pas pourquoi cela ne fonctionne pas. Avez-vous une piste ?

    Je ne pense pas que le problème provienne de la "," en tête de ligne.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    As-tu utilisé var_dump pour visualiser le résultat?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $input = ",26-05-2013,11:02:05,44.663144,-1.151637 ";
    var_dump( explode( ",", $input ) );
    A+

  12. #12
    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
    ah non . Je ne connais pas cette fonction ..... Mais merci de me la faire découvrir au moins avec vous tous je progresse...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array(5) { [0]=> string(0) "" [1]=> string(10) "26-05-2013" [2]=> string(8) "11:02:05" [3]=> string(9) "44.663144" [4]=> string(10) "-1.151637 " }

    Bon donc j'ai bien lat en [3] et long en [4] alors ou est l 'erreur ?

  13. #13
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 089
    Points : 44 660
    Points
    44 660
    Par défaut
    Il aurait était intéressant que tu nous dises également ce qui ne marche pas
    - la carte s'affiche mais pas les marqueurs
    - la carte ne s'affiche pas

    Dans tous les cas un coup d'oeil au code généré peut être de grand enseignement.

    Dans l'exemple qui marche les valeurs sont encadrées par des virgules, je me lance donc quand même dans une hypothèse, présence d'espace à la fin de la ligne faisant que la latitude n'est pas un numeric, la carte devrait s'afficher sans marqueurs.
    Dans ce cas essaies de mettre un $buffer = trim($buffer); avant l'explode.

  14. #14
    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,

    Voici donc la solution j 'ai reformater les données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    26-05-2013,11:02:05,44.663144,-1.151637,
    Pas de" ' " au début mais a la fin puis lat [2] et long[3]

    Merci a tous

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

Discussions similaires

  1. Génération d'un fichier XML en PHP pour Google Maps.
    Par kEep OnE dans le forum Langage
    Réponses: 1
    Dernier message: 03/07/2012, 07h03
  2. Recherche scripteur PHP pour Google MAPS API
    Par emeric73 dans le forum Autres
    Réponses: 0
    Dernier message: 22/02/2010, 13h13
  3. [Librairies] Ch script PHP pour reconnaissance de texte (OCR)
    Par yvan02 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/05/2006, 16h50
  4. Réponses: 4
    Dernier message: 30/12/2005, 11h00
  5. [Sécurité] Script PHP pour valider du HTML
    Par marcha dans le forum Langage
    Réponses: 2
    Dernier message: 06/11/2005, 14h57

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