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 :

Erreur XML jamais vue avant


Sujet :

APIs Google

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Erreur XML jamais vue avant
    Bonjour à tous,

    Mon script fonctionnait parfaitement, mais depuis quelques semaines la carte ne s'affiche plus et j'ai les erreurs suivantes :

    Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : AttValue: " or ' expected in ...
    Warning: SimpleXMLElement::__construct(): lor: #fff; color: #000; }</style></head><body><div><table><tr><td><b><font face= in...
    Warning: SimpleXMLElement::__construct(): ^ in...
    Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : attributes construct error in...
    J'imagine que les adresses passées en paramètres coincent quelque part. Elles sont formatées avec les fonctions suivantes :

    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
    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
     
    //lecture BDD
    while($row = mysql_fetch_assoc($sql)){
        $adresse_dom = $row['adresse'].', '.$row['code_postal'].' '.$row['ville']. ', '.$row['pays'];
        $coords_dom = get_coordonees_from_adresse($adresse_dom); //un tableau [adresse latitude longitude]
        $lon = round($coords_dom[0]['longitude'],5);
        $lat = round($coords_dom[0]['latitude'],5);
    }
     
     
    function get_coordonees_from_adresse($adresse)
    {
      $api_key = 'xxxxxxxxxxxxxxxxxxxxxxxx';
      $adresse = urlencode(formate_adresse($adresse));
      //echo $adresse."<br>";
      $url = 'http://maps.google.com/maps/geo?q=' . $adresse . '&output=xml&oe=utf8&gl=fr&sensor=false&key=' . $api_key;
      //$fp = fsockopen ($url, 80, $errno, $errstr, 30);
      //$page = file_get_contents($url);
      $page =  http_fetch_url($url);
      // Parse le résultat XML
      $xml_result = new SimpleXMLElement(stripslashes($page));
      // Vérifie que la requête a réussi
      if ($xml_result->Response->Status->code != 200) return array();
      // Charge les adresses
      $adresses = array();
      foreach ($xml_result->Response->Placemark as $place) {
        list($longitude, $latitude, $altitude) = explode(',', $place->Point->coordinates);
        // Ajoute au tableau
        $adresses[] = array('adresse_complete' => utf8_decode($place->address),
                 'latitude' => $latitude,
                 'longitude' => $longitude);
      }
      return $adresses;
    } 
     
     
    function formate_adresse($adresse){
    $adresse = trim(preg_replace('/ +/', ' ', mb_ereg_replace('[^0-9A-Za-z\p{L}]+', ' ', $adresse)));
    $bad = array(" r ", " av ", " ave ", " bld ", " bd ", " imp ");
    $good = array(" rue ", " avenue ", " avenue ", " boulevard ", " boulevard ", " impasse ");
    return str_replace($bad, $good, strtolower($adresse));	
    }
    //curl
    function http_fetch_url($url, $timeout = 10)
    {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

    Précision : le plantage se produit sur la carte monde avec les adresses étrangères. Pour la France, c'est bon.
    Les warnings concernent la ligne : $xml_result = new SimpleXMLElement(stripslashes($page));.
    Est-ce que quelque chose a changé sur Google Map API ?
    Merci de vos lumières.

  2. #2
    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
    Bonjour,
    problème de version...
    voici le message en substance que l'on reçoit lorsque l'on tape l’adresse http://maps.google.com/maps/geo, adresse de ta requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    {
      "Status": {
        "code": 610,
        "request": "geocode",
        "error_message": "The Geocoding API v2 has been turned down on September 9th, 2013. The Geocoding API v3 should be used now. Learn more at https://developers.google.com/maps/documentation/geocoding/"
      }
    }

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonsoir, merci d'avoir répondu. Je vais donc regarder la nouvelle version.
    Puis je viendrai mettre le post en résolu.

  4. #4
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    En fait, même en V3, toujours la même erreur :

    Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML
    Sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $url = 'https://maps.googleapis.com/maps/api/geocode/xml?address='.$adresse_ok.'&sensor=false&key='.$api_key;
    $page =  http_fetch_url($url);
    ERREUR ->  $xml_result = new SimpleXMLElement($page);
    Pourtant si je saisis l'URL dans le navig, Google me retourne un beau fichier XML impeccable...
    Comprends pas

  5. #5
    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
    Est ce que dans ta fonction http_fetch_url tu reçois les bonnes datas ?

    Obtiens tu des données en passant en HTTP://

    Problème de clé !?!

Discussions similaires

  1. [XSLT] Erreur XML généré par php "semble pas avoir d'information de style"
    Par Overstone dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 01/08/2007, 18h59
  2. Erreur 1172 avec Vue
    Par Mad Ant dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 22/05/2007, 10h39
  3. [AJAX] XAJAX : message d'erreur XML
    Par Rick62 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/04/2007, 11h38
  4. erreur xml insertBefore
    Par totoche dans le forum ASP
    Réponses: 1
    Dernier message: 30/10/2006, 17h08
  5. erreur encore jamais vue (pour moi)
    Par le_gueux90 dans le forum C
    Réponses: 8
    Dernier message: 20/12/2005, 10h51

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