Trouver la latitude et longitude via l'API de Google Map
Voici une fonction qui vous permet de trouvé la latitude et longitude d'un emplacement à partir de son adresse via l'API de Google Map./**
* trouver latitude et longitude via l'API de GOOGLE MAP
*
* @author PHPascal
* @since Wed Aug 11 13:03:12 EDT 2010
* @param $adresse = adresse a rechercher avec le numéro de rue: la rue, la ville et le code postal
* exemple : 8028 rue Foucher, Montréal, H3L 3H3
* @param $cle_google = cle de google pour utiliser l'API
* @return array avec $reponse['latitude'] et $reponse['longitude']
*/
function trouver_coordonner($adresse,$cle_google)
{
// initialisation
$retour['latitude'] = 0;
$retour['longitude'] = 0;
$retour['erreur'] = "";
define("MAPS_HOST", "maps.google.com");
define("KEY", $cle_google);
// Initialize delay in geocode speed
$delay = 0;
$base_url = "http://" . MAPS_HOST . "/maps/geo?output=xml" . "&key=" . KEY;
$geocode_pending = true;
while ($geocode_pending)
{
$request_url = $base_url . "&q=" . urlencode($adresse);
$xml = simplexml_load_file($request_url) or die("url not loading");
$status = $xml->Response->Status->code;
if (strcmp($status, "200") == 0)
{
// Successful geocode
$geocode_pending = false;
$coordinates = $xml->Response->Placemark->Point->coordinates;
//$coordinatesSplit = split(",", $coordinates);
$coordinatesSplit = preg_split('[,]', $coordinates);
$retour['latitude'] = mysql_real_escape_string($coordinatesSplit[1]);
$retour['longitude'] = mysql_real_escape_string($coordinatesSplit[0]);
} else if (strcmp($status, "620") == 0) {
// sent geocodes too fast
$delay += 100000;
} else {
// failure to geocode
$geocode_pending = false;
$retour['erreur'] .= "Address " . $address . " failed to geocoded. ";
$retour['erreur'] .= "Received status " . $status . "<br>\n";
}
usleep($delay);
}
return $retour;
}
J'ai créé cette fonction a partir des indication donné sur le site de Google. Pour plus d'informations regarder directement la documentation de Google : http://code.google.com/intl/fr/apis/maps/articles/phpsqlgeocode.html