+foreach ($aOsmIds as $sItem) {
+ // Skip empty sItem
+ if (empty($sItem)) continue;
+
+ $sType = $sItem[0];
+ $iId = (int) substr($sItem, 1);
+ if ($iId > 0 && ($sType == 'N' || $sType == 'W' || $sType == 'R')) {
+ $aCleanedQueryParts[] = $sType . $iId;
+ $oPlace = $oPlaceLookup->lookupOSMID($sType, $iId);
+ if ($oPlace) {
+ // we want to use the search-* output templates, so we need to fill
+ // $aSearchResults and slightly change the (reverse search) oPlace
+ // key names
+ $oResult = $oPlace;
+ unset($oResult['aAddress']);
+ if (isset($oPlace['aAddress'])) $oResult['address'] = $oPlace['aAddress'];
+ if ($sOutputFormat != 'geocodejson') {
+ unset($oResult['langaddress']);
+ $oResult['name'] = $oPlace['langaddress'];
+ }
+ $aSearchResults[] = $oResult;
+ }
+ }
+}