> Obtenir la lattitude et la longitude googlemap d\'une adresse en phpL'affichage des marqueurs sur les cartes googleMpas est beaucoup plus rapide en les positionnant directement avec les coordonn?es g?ographiques, sans demander ? google de les retrouver ? partir d'une adresse.
Lisez plut?t la version mise ? jour de cet article, l'API google ayant consid?rablement ?volu?e : http://www.cylman.com/geocoder-une-adresse-en-php-obtenir-sa-latitude-et-sa-longitude_qr29.html
J'utilise une fonction, provenant de la classe GoogleMapAPI.class.php , ci dessous un exemple inutile, c'est surtout pratique pour tourner en boucle dans une base de donn?e et d'y mettre ? jour des colonnes 'lat' et 'lon' , attention, google limite ? 15000 requ?tes de g?olocalisation par jour ou bien a une certaine fr?quence (1/10?me de seconde si on lit bien leurs exemples, cf. http://code.google.com/apis/maps/faq.html#geocoder_limit ).
En cas de besoin ponctuel vous pouvez n?anmoins d?passer la limite des 15000 g?olocalisations GoogleMap par jour.
Ne confondez pas cartographier et g?olocaliser, l'utilisation des cartes est quasi illmit?e (? partir de 500 000 carte/jour il faut juste pr?venir google pour qu'ils adaptent le service), en revanche le calcul des lon/lat ? partir d'une adresse est lui, limit?. D'o? l'int?r?t de stocker ses adresses localis?es dans une table.
<?
function getCoordsFromAdress($rue,$cp,$ville,$pays,$serveur,$APIKey)
{
$_coords=array();
$_url = sprintf('http://%s/maps/geo?&q=%s&output=csv&key=%s',$serveur,rawurlencode("$rue, $cp $ville, $pays"),"$APIKey");
$_result = false;
if($_result = file_get_contents($_url))
{
$_result_parts = explode(',',$_result);
if($_result_parts[0] != 200)
return false;
$coords['lat'] = $_result_parts[2];
$coords['lon'] = $_result_parts[3];
}
return $coords;
}
// valeurs pouvant provenir d'une base de donn?es
$rue='22 rue rambuteau';
$cp='75003';
$ville='PARIS';
$pays='FR';
$serveur='maps.google.com';
$APIKey='VOTREAPIKEYICI';
if($adresse1<>'' AND $cp<>'' AND $ville<>'' )
{
$coords=getCoordsFromAdress($adresse1,$cp,$ville,$pays,$serveur,$APIKey);
echo $coords['lat']." ".$coords['lon'];
}
?>
retour