X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/7c8c206818266f40d2447e9b4c1b059c1139b152..521d6294993f8d8d46d93d514c08556d0c924786:/website/lookup.php diff --git a/website/lookup.php b/website/lookup.php index d1c81292..51abe1f2 100755 --- a/website/lookup.php +++ b/website/lookup.php @@ -27,42 +27,40 @@ $sOutputFormat = $_GET['format']; } - // Show address breakdown - $bShowAddressDetails = true; - if (isset($_GET['addressdetails'])) $bShowAddressDetails = (bool)$_GET['addressdetails']; - // Preferred language $aLangPrefOrder = getPreferredLanguages(); $hLog = logStart($oDB, 'place', $_SERVER['QUERY_STRING'], $aLangPrefOrder); $aSearchResults = array(); + $aCleanedQueryParts = array(); if (isset($_GET['osm_ids'])) { $oPlaceLookup = new PlaceLookup($oDB); $oPlaceLookup->setLanguagePreference($aLangPrefOrder); - $oPlaceLookup->setIncludeAddressDetails($bShowAddressDetails); + $oPlaceLookup->setIncludeAddressDetails(getParamBool('addressdetails', true)); + $oPlaceLookup->setIncludeExtraTags(getParamBool('extratags', false)); + $oPlaceLookup->setIncludeNameDetails(getParamBool('namedetails', false)); - $osm_ids = explode(',', $_GET['osm_ids']); + $aOsmIds = explode(',', $_GET['osm_ids']); - if ( count($osm_ids) > CONST_Places_Max_ID_count ) + if ( count($aOsmIds) > CONST_Places_Max_ID_count ) { userError('Bulk User: Only ' . CONST_Places_Max_ID_count . " ids are allowed in one request."); exit; } - $type = ''; - $id = 0; - foreach ($osm_ids AS $item) + foreach ($aOsmIds AS $sItem) { - // Skip empty items - if (empty($item)) continue; + // Skip empty sItem + if (empty($sItem)) continue; - $type = $item[0]; - $id = (int) substr($item, 1); - if ( $id > 0 && ($type == 'N' || $type == 'W' || $type == 'R') ) + $sType = $sItem[0]; + $iId = (int) substr($sItem, 1); + if ( $iId > 0 && ($sType == 'N' || $sType == 'W' || $sType == 'R') ) { - $oPlaceLookup->setOSMID($type, $id); + $aCleanedQueryParts[] = $sType . $iId; + $oPlaceLookup->setOSMID($sType, $iId); $oPlace = $oPlaceLookup->lookup(); if ($oPlace){ // we want to use the search-* output templates, so we need to fill @@ -70,7 +68,7 @@ // key names $oResult = $oPlace; unset($oResult['aAddress']); - $oResult['address'] = $oPlace['aAddress']; + if (isset($oPlace['aAddress'])) $oResult['address'] = $oPlace['aAddress']; unset($oResult['langaddress']); $oResult['name'] = $oPlace['langaddress']; $aSearchResults[] = $oResult; @@ -83,8 +81,8 @@ if (CONST_Debug) exit; $sXmlRootTag = 'lookupresults'; + $sQuery = join(',',$aCleanedQueryParts); // we initialize these to avoid warnings in our logfile - $sQuery = ''; $sViewBox = ''; $bShowPolygons = ''; $aExcludePlaceIDs = [];