PHPascal.com

PHPAscal rouge2 (Version bleu)


Programmation web CSS HTML PHP Jquery Javascript Wordpresse RSS SQL SSH, serveur linux Outils
  PHPascal a 147 articles


Recherche


cheap nike nfl jerseysWholesale cheap nfl jerseyscheap jerseys online from chinacheap nfl jerseys free shippingwholesale nba jerseysWholesale cheap nhl jerseyscheap nhl jerseys onlinecheap nba basketball jerseys

Valid HTML 5

Programmation web / PHP / Trouver latitude et longitude

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
Article écrit le 13 août 2010

Autres articles sous la même catégorie


Pascal Dubreuil | © PHPascal.com 2024
Temps d'exécution : 0.0047 sec
Imprimer le 9 November 2024 - 05:43:18
par Pascal Dubreuil organisateur du Marathon roller du Canada