/**
  * Test reverse lookup
  *
  * @return void
  */
 public function testReverse()
 {
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb'));
     $mock->addResponse(fopen(__DIR__ . '/responses/mapquestReverseGeocodeIrishTimes.xml', 'rb'));
     $mock->addResponse(fopen(__DIR__ . '/responses/mapquestReverseGeocodeChurchtown.xml', 'rb'));
     $config = array('server' => 'http://open.mapquestapi.com/nominatim/v1/', 'adapter' => $mock);
     $osm = new Services_OpenStreetMap($config);
     $nominatim = new Services_OpenStreetMap_Nominatim($osm->getTransport());
     $nominatim->setServer('mapquest');
     $xml = $nominatim->setFormat('xml')->reverseGeocode("53.3459641", "-6.2548149");
     $this->AssertEquals($xml[0]->addressparts->house, "The Irish Times");
     $this->AssertEquals($xml[0]->addressparts->house_number, "24-28");
     $this->AssertEquals($xml[0]->addressparts->road, "Tara Street");
     $this->AssertEquals($xml[0]->addressparts->city, "Dublin");
     $this->AssertEquals($xml[0]->addressparts->county, "County Dublin");
     $this->AssertEquals($xml[0]->addressparts->state_district, "Leinster");
     $this->AssertEquals($xml[0]->addressparts->postcode, "2");
     $this->AssertEquals($xml[0]->addressparts->country, "Ireland");
     $this->AssertEquals($xml[0]->addressparts->country_code, "ie");
     $nominatim->setCountryCodes('ie');
     $res = $nominatim->search('churchtown');
     $this->assertEquals(count($res), 10);
 }
 /**
  * Test reverse geocode.
  *
  * This is also a good example of how to use Services_OpenStreetMap_Nominatim
  * separate from the core Services_OpenStreetMap object.
  *
  * @return void
  */
 public function testNomimatimReverseGeocode()
 {
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse(fopen(__DIR__ . '/responses/nominatim_reverse_it.xml', 'rb'));
     $osm = new Services_OpenStreetMap(array('adapter' => $mock));
     $nominatim = new Services_OpenStreetMap_Nominatim($osm->getTransport());
     $xml = $nominatim->setFormat('xml')->reverseGeocode("53.3459641", "-6.2548149");
     $this->AssertEquals($xml[0]->result, "The Irish Times, 24-28, Tara Street, Dublin 2, Dublin, " . "County Dublin, Leinster, D02, Ireland");
     $this->AssertEquals($xml[0]->addressparts->road, "Tara Street");
     $this->AssertEquals($xml[0]->addressparts->city, "Dublin");
 }
 /**
  * ReverseGeocode
  *
  * Peform a reverse search/geoencoding.
  *
  * @param sttring $lat            Latitude
  * @param string  $lon            Longitude
  * @param bool    $addressdetails Whether to include address details in results
  * @param int     $zoom           Zoom level to search at
  * @param string  $format         Format to retrieve. json/xml (default)
  *
  * @return void
  */
 public function reverseGeocode($lat, $lon, $addressdetails = true, $zoom = 18, $format = 'xml')
 {
     $nominatim = new Services_OpenStreetMap_Nominatim($this->getTransport());
     return $nominatim->setFormat($format)->reverseGeocode($lat, $lon, $addressdetails, $zoom);
 }