Skip to content

Commit 592b934

Browse files
author
Jonathan Beliën
committed
Update Geo6.php
Close #2
1 parent 17ccb00 commit 592b934

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

Geo6.php

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public function geocodeQuery(GeocodeQuery $query): Collection
8989
}
9090

9191
$language = '';
92-
if (!is_null($query->getLocale()) && preg_match('/^(fr|nl).*$/', $query->getLocale(), $matches) === 1) {
92+
if (!is_null($query->getLocale()) && preg_match('/^(fr|nl|de).*$/', $query->getLocale(), $matches) === 1) {
9393
$language = $matches[1];
9494
}
9595

@@ -114,18 +114,22 @@ public function geocodeQuery(GeocodeQuery $query): Collection
114114
foreach ($json->features as $feature) {
115115
$components_fr = self::extractComponents($feature->properties->components, 'fr');
116116
$components_nl = self::extractComponents($feature->properties->components, 'nl');
117+
$components_de = self::extractComponents($feature->properties->components, 'de');
117118

118119
$coordinates = $feature->geometry->coordinates;
119120

120121
$address_fr = self::buildAddress($this->getName(), $components_fr, $coordinates);
121122
$address_nl = self::buildAddress($this->getName(), $components_nl, $coordinates);
123+
$address_de = self::buildAddress($this->getName(), $components_de, $coordinates);
122124

123125
switch ($language) {
124126
case 'fr':
125127
if (!is_null($address_fr->getStreetName())) {
126128
$results[] = $address_fr;
127129
} elseif (!is_null($address_nl->getStreetName())) {
128130
$results[] = $address_nl;
131+
} elseif (!is_null($address_de->getStreetName())) {
132+
$results[] = $address_de;
129133
}
130134
break;
131135

@@ -134,6 +138,18 @@ public function geocodeQuery(GeocodeQuery $query): Collection
134138
$results[] = $address_nl;
135139
} elseif (!is_null($address_fr->getStreetName())) {
136140
$results[] = $address_fr;
141+
} elseif (!is_null($address_de->getStreetName())) {
142+
$results[] = $address_de;
143+
}
144+
break;
145+
146+
case 'de':
147+
if (!is_null($address_de->getStreetName())) {
148+
$results[] = $address_de;
149+
} elseif (!is_null($address_fr->getStreetName())) {
150+
$results[] = $address_fr;
151+
} elseif (!is_null($address_nl->getStreetName())) {
152+
$results[] = $address_nl;
137153
}
138154
break;
139155

@@ -144,6 +160,9 @@ public function geocodeQuery(GeocodeQuery $query): Collection
144160
if (!is_null($address_nl->getStreetName())) {
145161
$results[] = $address_nl;
146162
}
163+
if (!is_null($address_de->getStreetName())) {
164+
$results[] = $address_de;
165+
}
147166
break;
148167
}
149168
}
@@ -380,6 +399,36 @@ private static function extractComponents(array $components, string $language) :
380399
break;
381400
}
382401
}
402+
} else if ($language === 'de') {
403+
foreach ($components as $component) {
404+
switch ($component->type) {
405+
case 'country':
406+
$country = $component->name_de;
407+
$countryCode = $component->id;
408+
break;
409+
case 'locality':
410+
$locality = $component->name_fr ?? $component->name_nl;
411+
break;
412+
case 'municipality':
413+
$municipality = $component->name_fr ?? $component->name_nl;
414+
break;
415+
case 'postal_code':
416+
$postalCode = (string) $component->id;
417+
break;
418+
case 'province':
419+
$province = $component->name_fr ?? $component->name_nl;
420+
break;
421+
case 'region':
422+
$region = $component->name_fr ?? $component->name_nl;
423+
break;
424+
case 'street':
425+
$street = $component->name_de;
426+
break;
427+
case 'street_number':
428+
$streetNumber = (string) $component->name_fr ?? $component->name_nl;
429+
break;
430+
}
431+
}
383432
}
384433

385434
return [

0 commit comments

Comments
 (0)