Google mpas api et php

Signaler
Messages postés
4
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
13 février 2007
-
Messages postés
198
Date d'inscription
lundi 28 février 2005
Statut
Membre
Dernière intervention
14 novembre 2008
-
Bonjour,

Généralement je ne poste pas et je trouve ma réponse tous seul, mais mon niveau de débutant, ne me permet pas de trouver pour ceci,

je veux afficher une carte google sur mon site de bonnes adresses, en indiquant l'adresse, pour que les coordonnées (latitute et longitude) soient retrouvées.

je ne veux pas utiliser directement les coordonnées car par la suite je compte récupérer les adresses dans ma base de donnée.

J'ai installé un class php correspondant exactement à mon besoin, (càd : afficher un ou 2 point sur la carte à partir d'une adresse et le tout en php), téléchargeable ici : http://www.systemsevendesigns.com/files/phoogle.zip
http://www.systemsevendesigns.com/phoogle

Mais mon problème c'est que cette class utilise Yahoo maps pour retrouver les coordonnées (latitude, et longitude) d'une adresse, mais YAHOO MAPS n'est pas compatible avec la FRANCE.

Donc je veux utiliser l'api de google maps qui lui connait toutes les villes françaises.

Mais je n'arrive pas à adapter la fonction.Voici la fonction marchant parfaitement avec yahoo :

 function addAddress($address,$htmlMessage=null){
  if (!is_string($address)){
  die("All Addresses must be passed as a string");
   }
  $apiURL = "http://api.local.yahoo.com/MapsService/V1/geocode?appid=YahooDemo&location=";
  $addressData = file_get_contents($apiURL.urlencode($address));
  $results = $this->xml2array($addressData);
  if (empty($results['ResultSet']['Result']['Address'])){
   $pointer = count($this->invalidPoints);
   $this->invalidPoints[$pointer]['lat']= $results['ResultSet']['Result']['Latitude'];
   $this->invalidPoints[$pointer]['long']= $results['ResultSet']['Result']['Longitude'];
   $this->invalidPoints[$pointer]['passedAddress'] = $address;
   $this->invalidPoints[$pointer]['htmlMessage'] = $htmlMessage;
    }else{
   $pointer = count($this->validPoints);
   $this->validPoints[$pointer]['lat']= $results['ResultSet']['Result']['Latitude'];
   $this->validPoints[$pointer]['long']= $results['ResultSet']['Result']['Longitude'];
   $this->validPoints[$pointer]['passedAddress'] = $address;
   $this->validPoints[$pointer]['htmlMessage'] = $htmlMessage;
  }
  
 }

que je souhaite adapter avec l'api de google, en exportant les données soit en xml comme yahoo, soit en cvs

l'api de google est de cette forme :
http://maps.google.com/maps/geo?&q=63 rue rossini nices&output=csv&key=MACLE

voici un exemple trouvé sur la class officielle google maps :

 function geoGetCoords($address,$depth=0) {
       
        switch($this->lookup_service) {
                       
            case 'GOOGLE':
               
                $_url = sprintf('http://%s/maps/geo?&q=%s&output=csv&key=%s',$this->lookup_server['GOOGLE'],rawurlencode($address),$this->api_key);


                $_result = false;
               
                if($_result = $this->fetchURL($_url)) {


                    $_result_parts = explode(',',$_result);
                    if($_result_parts[0] != 200)
                        return false;
                    $_coords['lat'] = $_result_parts[2];
                    $_coords['lon'] = $_result_parts[3];
                }
               
                break;
           
            case 'YAHOO':
            default:
                       
                $_url = 'http://%s/MapsService/V1/geocode';
                $_url .= sprintf('?appid=%s&location=%s',$this->lookup_server['YAHOO'],$this->app_id,rawurlencode($address));


                $_result = false;


                if($_result = $this->fetchURL($_url)) {


                    preg_match('!<Latitude>(.*)</Latitude><Longitude>(.*)</Longitude>!U', $_result, $_match);


                    $_coords['lon'] = $_match[2];
                    $_coords['lat'] = $_match[1];


                }
               
                break;
        }        
       
        return $_coords;      
    }

Ca n'a pas l'air hyper compliqué quand on a appri les bases....

autre exemple : avec la recherche de coordonnées à partir de googple maps :
http://www.developer.com/db/article.php/10920_3621981_1

mais la ça fait une semaine que je galère

merci pour vos idées, et/ou m'aider à adapter la fonction

2 réponses

Messages postés
198
Date d'inscription
lundi 28 février 2005
Statut
Membre
Dernière intervention
14 novembre 2008
1
Ca a l'air chaud...
Messages postés
198
Date d'inscription
lundi 28 février 2005
Statut
Membre
Dernière intervention
14 novembre 2008
1
Ca a l'air chaud...