/** * 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); }