Ejemplo n.º 1
0
 function test_lookup_failure()
 {
     $this->ca_full_addr = array('street_address' => "Kalervonkatu 3", 'city' => "Jyväskylä", 'country_code' => "FI");
     $this->ca_geoloc = new GeoLoc($this->ca_full_addr);
     $ca_geocoder = new CaGeocoder();
     $address = $ca_geocoder->geocode($this->ca_geoloc);
     $this->assertFalse($address->success);
 }
Ejemplo n.º 2
0
 protected function do_geocode($address)
 {
     foreach ($this->geocoders->provider_order as $provider) {
         $msg = "MultiGeocoder using " . $provider;
         Geocoder::logger('debug', $msg);
         switch ($provider) {
             case 'google':
                 $geocoder = new GoogleGeocoder();
                 break;
             case 'yahoo':
                 $geocoder = new YahooGeocoder();
                 break;
             case 'us':
                 $geocoder = new UsGeocoder();
                 break;
             case 'ca':
                 $geocoder = new CaGeocoder();
                 break;
             default:
                 $msg = '"' . $provider . '" is an invalid Geocode provider.';
                 Geocoder::logger('error', $msg);
                 $geoloc = new GeoLoc();
                 $geoloc->success = false;
                 $geoloc->street_address = $msg;
                 return $geoloc;
         }
         $result = $geocoder->geocode($address);
         # This statement is for use by multi_geocoder_test only
         if (isset($this->geocoders->force_failure)) {
             foreach ($this->geocoders->force_failure as $prov) {
                 if ($provider == $prov) {
                     $result->success = false;
                 }
             }
         }
         if ($result->success) {
             return $result;
         }
     }
     $address_str = $address instanceof GeoLoc ? $address->to_geocodeable_s() : $address;
     $msg = "Something has gone very wrong during the geocoding of this address: " . $address_str;
     Geocoder::logger('error', $msg);
     $geoloc = new GeoLoc();
     $geoloc->success = false;
     $geoloc->street_address = $msg;
     return $geoloc;
 }