Un client de geolocalisation en cinq lignes de PHP avec l'API Google Maps
Par NiKo le mardi 29 janvier 2008, 17:16 - Dev - Lien permanent
Google propose des choses vraiment intéressantes au travers de ses API, comme par exemple son méconnu (car planqué dans la doc) webservice HTTP de géolocalisation. L'idée ici est de récupérer la lattitude et la longitude d'un endroit géographique à partir de sa description, par exemple Paris, France ou encore 3 allée des allouettes, 35000 Rennes, France.
Il vous faut posséder au préalable une clé d'API Google, que vous pouvez obtenir gratuitement par là.
<?php define('GOOGLE_API_KEY', 'your_google_api_key_here'); $wsurl = 'http://maps.google.com/maps/geo?q=%s&output=csv&key=%s'; $location = 'Paris, France'; $data = explode(',', file_get_contents(sprintf($wsurl, urlencode($location), GOOGLE_API_KEY))); $coord = 200 === (int)$data[0] ? array((float)$data[2], (float)$data[3]) : null; var_dump($coord);
Ce qui nous donne :
array(2) { [0]=> float(48.856667) [1]=> float(2.350987) }
On prendra soin de cacher autant que faire se peut les résultats renvoyés par le webservice, afin de soulager les serveurs de Google et accessoirement de pas fusiller le crédit-requête associé à sa clé d'API.
Disclaimer : Ce billet n'est pas un appel au troll, je me doute qu'on peut faire la même chose en 3 lignes de Ruby, 2 lignes de Python et -10 lignes de Fotran77. C'est juste pour dire que les services Google, ça déchire quand même un petit peu.



















Commentaires
1. Le mardi 29 janvier 2008, 17:48 par NiCoS
2. Le mardi 29 janvier 2008, 17:52 par NiKo
3. Le mardi 29 janvier 2008, 17:52 par Geoffrey
4. Le mardi 29 janvier 2008, 17:52 par Geoffrey
5. Le mardi 29 janvier 2008, 17:54 par Christophe
6. Le mardi 29 janvier 2008, 17:57 par Olivier
7. Le mardi 29 janvier 2008, 18:13 par xuxu
8. Le mardi 29 janvier 2008, 18:15 par Christophe
9. Le mardi 29 janvier 2008, 18:23 par Tonio
10. Le mardi 29 janvier 2008, 18:33 par NiCoS
11. Le mardi 29 janvier 2008, 19:01 par GuyKPADJIK
12. Le mardi 29 janvier 2008, 19:16 par No'
13. Le mardi 29 janvier 2008, 21:15 par arnod'mental
14. Le mardi 29 janvier 2008, 21:17 par arnod'mental
15. Le mardi 29 janvier 2008, 21:42 par NiKo
16. Le mardi 29 janvier 2008, 22:29 par beleneglorion
17. Le mercredi 30 janvier 2008, 09:22 par chris
18. Le mercredi 30 janvier 2008, 15:14 par greg
19. Le jeudi 7 février 2008, 17:44 par nicolas bertelle