$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; } 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; $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; } }
if (isset($_GET['format']) && ($_GET['format'] == 'xml' || $_GET['format'] == 'json' || $_GET['format'] == 'jsonv2')) { $sOutputFormat = $_GET['format']; } // Show address breakdown $bShowAddressDetails = true; if (isset($_GET['addressdetails'])) { $bShowAddressDetails = (bool) $_GET['addressdetails']; } // Preferred language $aLangPrefOrder = getPreferredLanguages(); $hLog = logStart($oDB, 'reverse', $_SERVER['QUERY_STRING'], $aLangPrefOrder); if (isset($_GET['osm_type']) && isset($_GET['osm_id']) && (int) $_GET['osm_id'] && ($_GET['osm_type'] == 'N' || $_GET['osm_type'] == 'W' || $_GET['osm_type'] == 'R')) { $oPlaceLookup = new PlaceLookup($oDB); $oPlaceLookup->setLanguagePreference($aLangPrefOrder); $oPlaceLookup->setIncludeAddressDetails($bShowAddressDetails); $oPlaceLookup->setOSMID($_GET['osm_type'], $_GET['osm_id']); $aPlace = $oPlaceLookup->lookup(); } else { if (isset($_GET['lat']) && isset($_GET['lon']) && preg_match('/^[+-]?[0-9]*\\.?[0-9]+$/', $_GET['lat']) && preg_match('/^[+-]?[0-9]*\\.?[0-9]+$/', $_GET['lon'])) { $oReverseGeocode = new ReverseGeocode($oDB); $oReverseGeocode->setLanguagePreference($aLangPrefOrder); $oReverseGeocode->setIncludeAddressDetails($bShowAddressDetails); $oReverseGeocode->setLatLon($_GET['lat'], $_GET['lon']); $oReverseGeocode->setZoom(@$_GET['zoom']); $aPlace = $oReverseGeocode->lookup(); } else { $aPlace = null; } } if (CONST_Debug) { exit;