affichage ville sur google map

Eléphant du PHP | 75 Messages

15 févr. 2010, 19:39

Bonjour,
Je ne sais pas si c'est ici que je dois poster ce message...dsl, je m'excuse par avance...

Mais j'aimerais trouver la longitude et la lattitude d'une ville (avec son nom,codepostal) pour l'afficher sur googlemap dans mon site.
Savez- vous comment procéder ?
j'imagine qu'il existe des sites où l'on envoi des variables sur une page ou autre mais je ne trouve pas !

merci
Modifié en dernier par tom_nameless le 16 févr. 2010, 11:30, modifié 1 fois.

ViPHP
ViPHP | 3607 Messages

16 févr. 2010, 10:28


Eléphant du PHP | 75 Messages

16 févr. 2010, 11:27

merci pour ce bel exemple.. où sont la latitude et longitude dans le code ci-dessous ?

Code : Tout sélectionner

<ExtendedData> <LatLonBox north="49.4713785" south="49.4133379" east="1.1625221" west="1.0344627"/> </ExtendedData> − <Point> <coordinates>1.0984924,49.4423668,0</coordinates> </Point>
car j'aimerai lors de l'enregistrement d'une adresse dans ma bdd, chercher la longitude et latitude pour les enregistrer en même temps...
quelqu'un a-t-il une solution à mon problème ?

ViPHP
ViPHP | 3607 Messages

16 févr. 2010, 11:57

Ce sont les données qu'il y a dans <coordinates> par contre je sais plus dans quel ordre :-°
Essaye longitude,latitude, si ça foire, fait l'inverse :)

Eléphant du PHP | 75 Messages

16 févr. 2010, 12:00

ok merci jojolapine,
et comment je peux faire pour récupérer ces données pour les enregistrer dans ma bdd ?
existe-t-il une petite application ou script qui permet de retourner les variables en php ?

ViPHP
ViPHP | 3607 Messages

16 févr. 2010, 12:09

php5 ?
=> http://fr.php.net/simplexml
php4 ?
=> http://fr.php.net/manual/fr/book.domxml.php
Essaye par toi même et reviens nous voir si t'as des soucis ;)

Eléphant du PHP | 75 Messages

16 févr. 2010, 13:09

j'ai un code mais visiblement les variables ne sont pas générées..
<?php
session_start();
 
function get_coordonees_from_adresse($adresse)
{
  $adresse = "rouen,";
  $key = "le code google API"; 
  $adresse = urlencode($adresse);
  $url = 'http://maps.google.com/maps/geo?q='.$adresse.'+FR&output=json&sensor=true_or_false&key='.$key;
  $page = file_get_contents($url);
  // Parse le résultat XML
  $xml_result = new SimpleXMLElement($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;
} 
print $latitude;
echo"<br />";
print $adresses['latitude'];
echo"<br />";
echo $adresses['longitude'];

?>

ViPHP
ViPHP | 3607 Messages

16 févr. 2010, 13:50

Essaye de faire plutôt un file_get_contents() sur l'url, et ensuite tu utilises http://fr.php.net/manual/fr/function.si ... string.php

ViPHP
ViPHP | 3607 Messages

16 févr. 2010, 13:52

Oups j'ai loupé un épisode :-°
En fait la fonction simplexml_load_string() renvoi déjà un objet, donc pas ton code deviens:
$page = file_get_contents($url);
  // Parse le résultat XML
  $xml_result = simplexml_load_string($page);
  // Vérifie que la requête a réussi
  if ($xml_result->Response->Status->code != 200) return array();

Eléphant du PHP | 75 Messages

16 févr. 2010, 14:09

dsl mais je n'ai pas bien compris ton dernier post ! :oops:
j'ai l'impression que ça ne change rien..

Code : Tout sélectionner

function get_coordonees_from_adresse($adresse) { $adresse = "rouen,"; $key = "MON CODE GOOGLE API"; $adresse = urlencode($adresse); $url = 'http://maps.google.com/maps/geo?q='.$adresse.'+FR&output=json&sensor=true_or_false&key='.$key; $page = file_get_contents($url); // Parse le résultat XML $xml_result = simplexml_load_string($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; print $latitude; return $adresses[2]; echo $adresses['longitude']; }
mes variables sont vides.. il me semble..

Eléphant du PHP | 75 Messages

17 févr. 2010, 15:26

mon nouveau code :

Code : Tout sélectionner

function get_coordonees_from_adresse($adresse) { $key = "MON CODE API"; $adresse = urlencode($adresse); $url = 'http://maps.google.com/maps/geo?q='.$adresse.'+FR&output=json&sensor=true_or_false&key='.$key; $page = file_get_contents($url); // Parse le résultat XML $xml_result = simplexml_load_string($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; } $adresse = "Rouen"; get_coordonees_from_adresse($adresse); { echo "latitude :".$adresses['latitude']; echo"<br />"; echo "longitude :".$adresses['longitude']; }
visiblement j'ai une nouvelle erreur :

Code : Tout sélectionner

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Start tag expected, '<' not found in C:\wamp\www\ESSAI\lecture-xml\index.php on line 11 Warning: simplexml_load_string() [function.simplexml-load-string]: { in C:\wamp\www\ESSAI\lecture-xml\index.php on line 11 Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in C:\wamp\www\ESSAI\lecture-xml\index.php on line 11 Notice: Trying to get property of non-object in C:\wamp\www\ESSAI\lecture-xml\index.php on line 13 Notice: Trying to get property of non-object in C:\wamp\www\ESSAI\lecture-xml\index.php on line 13 Notice: Trying to get property of non-object in C:\wamp\www\ESSAI\lecture-xml\index.php on line 13
quelqu'un pourrait il m'aider à trouver l'erreur ??

ViPHP
ViPHP | 3607 Messages

17 févr. 2010, 16:14

yep!
Alors ton problème est tout à fait normal, simple xml t'indique en gros que ton fichier xml n'est pas valide...
c'est bien normal puisque tu as demandé à google de te renvoyer les résultats au format json :)
Demande lui un format xml

Eléphant du PHP | 75 Messages

17 févr. 2010, 16:34

j'ai trouvé la solution....
j'ai modifié le code et j'ai changé le format xml en csv... qui est plus simple à lire

Code : Tout sélectionner

$adresse = "rouen"; $key = "MON CODE API"; $adresse = urlencode($adresse); $url = 'http://maps.google.com/maps/geo?&q='.$adresse.'+FR&output=csv&key='.$key; $page = file_get_contents($url); $adresses = explode(',', $page); echo "latitude : ".$adresses[2]; echo"<br />"; echo "longitude : ".$adresses[3];
par contre j'ai un doute sur la latitude et la longitude... c'est peut être liverse