Skip to content

Commit e911e0e

Browse files
committed
Merge pull request #328 from adamlc/master
Added in Region and RegionCode to GeoIP2Provider
2 parents adb7846 + a362315 commit e911e0e

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/Geocoder/Provider/GeoIP2Provider.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ public function getGeocodedData($address)
5252

5353
$result = json_decode($this->executeQuery($address));
5454

55+
//Try to extract the region name and code
56+
$region = null;
57+
$regionCode = null;
58+
if (isset($result->subdivisions) && is_array($result->subdivisions) && !empty($result->subdivisions)) {
59+
$lastSubdivision = array_pop($result->subdivisions);
60+
61+
$region = (isset($lastSubdivision->names->{$this->locale}) ? $lastSubdivision->names->{$this->locale} : null);
62+
$regionCode = (isset($lastSubdivision->iso_code) ? $lastSubdivision->iso_code : null);
63+
}
64+
5565
return array($this->fixEncoding(array_merge($this->getDefaults(), array(
5666
'countryCode' => (isset($result->country->iso_code) ? $result->country->iso_code : null),
5767
'country' => (isset($result->country->names->{$this->locale}) ? $result->country->names->{$this->locale} : null),
@@ -60,6 +70,8 @@ public function getGeocodedData($address)
6070
'longitude' => (isset($result->location->longitude) ? $result->location->longitude : null),
6171
'timezone' => (isset($result->location->timezone) ? $result->location->timezone : null),
6272
'zipcode' => (isset($result->location->postalcode) ? $result->location->postalcode : null),
73+
'region' => $region,
74+
'regionCode' => $regionCode
6375
))));
6476
}
6577

tests/Geocoder/Tests/Provider/GeoIP2ProviderTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ public static function provideDataForRetrievingGeodata()
9999
'cityDistrict' => null,
100100
'county' => null,
101101
'countyCode' => null,
102-
'region' => null,
103-
'regionCode' => null,
102+
'region' => 'Hamburg',
103+
'regionCode' => 'HH',
104104
'country' => 'Germany',
105105
'countryCode' => 'DE',
106106
'timezone' => null,

0 commit comments

Comments
 (0)