X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/9b76a8ffb4c4cd13628d85c00cf286382970b149..c47d1f4900bd156ec28643e450248233a0241329:/website/hierarchy.php?ds=sidebyside diff --git a/website/hierarchy.php b/website/hierarchy.php old mode 100755 new mode 100644 index 9b488f83..2c56b015 --- a/website/hierarchy.php +++ b/website/hierarchy.php @@ -1,10 +1,8 @@ getSet('format', array('html', 'json'), 'html'); $aLangPrefOrder = $oParams->getPreferredLanguages(); -$sLanguagePrefArraySQL = 'ARRAY['.join(',', array_map('getDBQuoted', $aLangPrefOrder)).']'; + $sPlaceId = $oParams->getString('place_id'); $sOsmType = $oParams->getSet('osmtype', array('N', 'W', 'R')); $iOsmId = $oParams->getInt('osmid', -1); -$oDB =& getDB(); +$oDB = new Nominatim\DB(); +$oDB->connect(); + +$sLanguagePrefArraySQL = $oDB->getArraySQL($oDB->getDBQuotedList($aLangPrefOrder)); if ($sOsmType && $iOsmId > 0) { $sPlaceId = chksql($oDB->getOne("select place_id from placex where osm_type = '".$sOsmType."' and osm_id = ".$iOsmId." order by type = 'postcode' asc")); @@ -56,11 +57,9 @@ if (CONST_Use_Aux_Location_data) { if ($iParentPlaceID) $iPlaceID = $iParentPlaceID; } -$oPlaceLookup = new Nominatim\PlaceLookup($oDB); -$oPlaceLookup->setLanguagePreference($aLangPrefOrder); -$oPlaceLookup->setIncludeAddressDetails(true); -$aPlaceAddress = array_reverse($oPlaceLookup->getAddressDetails($iPlaceID)); +$oAddressLookup = new AddressDetails($oDB, $iPlaceID, -1, $aLangPrefOrder); +$aPlaceAddress = array_reverse($oAddressLookup->getAddressDetails()); if (empty($aPlaceAddress)) userError('Unknown place id.'); @@ -102,18 +101,12 @@ $aParentOfLines = chksql($oDB->getAll($sSQL)); if (!empty($aParentOfLines)) { echo '

Parent Of:

'; - $aClassType = getClassTypesWithImportance(); $aGroupedAddressLines = array(); foreach ($aParentOfLines as $aAddressLine) { - if (isset($aClassType[$aAddressLine['class'].':'.$aAddressLine['type'].':'.$aAddressLine['admin_level']]['label']) - && $aClassType[$aAddressLine['class'].':'.$aAddressLine['type'].':'.$aAddressLine['admin_level']]['label'] - ) { - $aAddressLine['label'] = $aClassType[$aAddressLine['class'].':'.$aAddressLine['type'].':'.$aAddressLine['admin_level']]['label']; - } elseif (isset($aClassType[$aAddressLine['class'].':'.$aAddressLine['type']]['label']) - && $aClassType[$aAddressLine['class'].':'.$aAddressLine['type']]['label'] - ) { - $aAddressLine['label'] = $aClassType[$aAddressLine['class'].':'.$aAddressLine['type']]['label']; - } else $aAddressLine['label'] = ucwords($aAddressLine['type']); + $aAddressLine['label'] = Nominatim\ClassTypes\getProperty($aAddressLine, 'label'); + if (!$aAddressLine['label']) { + $aAddressLine['label'] = ucwords($aAddressLine['type']); + } if (!isset($aGroupedAddressLines[$aAddressLine['label']])) $aGroupedAddressLines[$aAddressLine['label']] = array(); $aGroupedAddressLines[$aAddressLine['label']][] = $aAddressLine;