X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/6fc32d9645f98ec39c8773d6bf01cc2f6d4969de..b14bc75dc4a0ca44485599d8ab4cf1c5781098e2:/website/lookup.php diff --git a/website/lookup.php b/website/lookup.php index dfa09d3b..9d0cea4c 100755 --- a/website/lookup.php +++ b/website/lookup.php @@ -5,6 +5,7 @@ require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_BasePath.'/lib/PlaceLookup.php'); + require_once(CONST_BasePath.'/lib/output.php'); if (strpos(CONST_BulkUserIPs, ','.$_SERVER["REMOTE_ADDR"].',') !== false) { @@ -22,11 +23,7 @@ ini_set('memory_limit', '200M'); // Format for output - $sOutputFormat = 'xml'; - if (isset($_GET['format']) && ($_GET['format'] == 'xml' || $_GET['format'] == 'json')) - { - $sOutputFormat = $_GET['format']; - } + $sOutputFormat = getParamSet('format', array('xml', 'json'), 'xml'); // Preferred language $aLangPrefOrder = getPreferredLanguages(); @@ -35,45 +32,42 @@ $aSearchResults = array(); $aCleanedQueryParts = array(); - if (isset($_GET['osm_ids'])) + + $oPlaceLookup = new PlaceLookup($oDB); + $oPlaceLookup->setLanguagePreference($aLangPrefOrder); + $oPlaceLookup->setIncludeAddressDetails(getParamBool('addressdetails', true)); + $oPlaceLookup->setIncludeExtraTags(getParamBool('extratags', false)); + $oPlaceLookup->setIncludeNameDetails(getParamBool('namedetails', false)); + + $aOsmIds = explode(',', getParamString('osm_ids', '')); + + if (count($aOsmIds) > CONST_Places_Max_ID_count) { - $oPlaceLookup = new PlaceLookup($oDB); - $oPlaceLookup->setLanguagePreference($aLangPrefOrder); - $oPlaceLookup->setIncludeAddressDetails(getParamBool('addressdetails', true)); - $oPlaceLookup->setIncludeExtraTags(getParamBool('extratags', false)); - $oPlaceLookup->setIncludeNameDetails(getParamBool('namedetails', false)); - - $aOsmIds = explode(',', $_GET['osm_ids']); - - if ( count($aOsmIds) > CONST_Places_Max_ID_count ) - { - userError('Bulk User: Only ' . CONST_Places_Max_ID_count . " ids are allowed in one request."); - exit; - } + userError('Bulk User: Only ' . CONST_Places_Max_ID_count . " ids are allowed in one request."); + } + + foreach ($aOsmIds AS $sItem) + { + // Skip empty sItem + if (empty($sItem)) continue; - foreach ($aOsmIds AS $sItem) + $sType = $sItem[0]; + $iId = (int) substr($sItem, 1); + if ( $iId > 0 && ($sType == 'N' || $sType == 'W' || $sType == 'R') ) { - // 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; - $oPlaceLookup->setOSMID($sType, $iId); - $oPlace = $oPlaceLookup->lookup(); - 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']; - unset($oResult['langaddress']); - $oResult['name'] = $oPlace['langaddress']; - $aSearchResults[] = $oResult; - } + $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 + // $aSearchResults and slightly change the (reverse search) oPlace + // key names + $oResult = $oPlace; + unset($oResult['aAddress']); + if (isset($oPlace['aAddress'])) $oResult['address'] = $oPlace['aAddress']; + unset($oResult['langaddress']); + $oResult['name'] = $oPlace['langaddress']; + $aSearchResults[] = $oResult; } } }