Geocoder\Provider\ArcGISOnline::reverse PHP Method

reverse() public method

{@inheritDoc}
public reverse ( $latitude, $longitude )
    public function reverse($latitude, $longitude)
    {
        $query = sprintf(self::REVERSE_ENDPOINT_URL, $this->protocol, $longitude, $latitude);
        $json = $this->executeQuery($query);
        if (property_exists($json, 'error')) {
            throw new NoResult(sprintf('No results found for query "%s".', $query));
        }
        $data = $json->address;
        $streetName = !empty($data->Address) ? $data->Address : null;
        $city = !empty($data->City) ? $data->City : null;
        $zipcode = !empty($data->Postal) ? $data->Postal : null;
        $region = !empty($data->Region) ? $data->Region : null;
        $county = !empty($data->Subregion) ? $data->Subregion : null;
        $countryCode = !empty($data->CountryCode) ? $data->CountryCode : null;
        return $this->returnResults([array_merge($this->getDefaults(), ['latitude' => $latitude, 'longitude' => $longitude, 'streetName' => $streetName, 'locality' => $city, 'postalCode' => $zipcode, 'region' => $region, 'countryCode' => $countryCode, 'county' => $county])]);
    }

Usage Example

 public function testReverseWithRealCoordinatesWithHttps()
 {
     $provider = new ArcGISOnline($this->getAdapter(), null, true);
     $results = $provider->reverse(48.86327999700046, 2.3890199980004354);
     $this->assertInstanceOf('Geocoder\\Model\\AddressCollection', $results);
     $this->assertCount(1, $results);
     /** @var \Geocoder\Model\Address $result */
     $result = $results->first();
     $this->assertInstanceOf('\\Geocoder\\Model\\Address', $result);
     $this->assertEquals(48.86327999700046, $result->getLatitude(), '', 0.0001);
     $this->assertEquals(2.3890199980004354, $result->getLongitude(), '', 0.0001);
     $this->assertNull($result->getStreetNumber());
     $this->assertEquals('3 Avenue Gambetta', $result->getStreetName());
     $this->assertEquals(75020, $result->getPostalCode());
     $this->assertEquals('Paris', $result->getLocality());
     $this->assertEquals('FRA', $result->getCountry()->getCode());
     $this->assertFalse($result->getBounds()->isDefined());
     $this->assertNull($result->getSubLocality());
     $this->assertEmpty($result->getAdminLevels());
     $this->assertNull($result->getCountry()->getName());
     $this->assertNull($result->getTimezone());
 }