} // 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; } include CONST_BasePath . '/lib/template/address-' . $sOutputFormat . '.php';
$sOutputFormat = 'xml'; if (isset($_GET['format']) && ($_GET['format'] == 'html' || $_GET['format'] == 'xml' || $_GET['format'] == 'json' || $_GET['format'] == 'jsonv2')) { $sOutputFormat = $_GET['format']; } // 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')) { $aLookup = array('osm_type' => $_GET['osm_type'], 'osm_id' => $_GET['osm_id']); } 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->setLatLon($_GET['lat'], $_GET['lon']); $oReverseGeocode->setZoom(@$_GET['zoom']); $aLookup = $oReverseGeocode->lookup(); if (CONST_Debug) { var_dump($aLookup); } } else { $aLookup = null; } } if ($aLookup) { $oPlaceLookup = new PlaceLookup($oDB); $oPlaceLookup->setLanguagePreference($aLangPrefOrder); $oPlaceLookup->setIncludeAddressDetails(getParamBool('addressdetails', true)); $oPlaceLookup->setIncludeExtraTags(getParamBool('extratags', false)); $oPlaceLookup->setIncludeNameDetails(getParamBool('namedetails', false)); $aPlace = $oPlaceLookup->lookupPlace($aLookup); } else {
$oReverseGeocode = new ReverseGeocode($oDB); $oReverseGeocode->setIncludeAddressDetails(true); echo "Warm reverse: "; if ($bVerbose) { echo "\n"; } for ($i = 0; $i < 1000; $i++) { $fLat = rand(-9000, 9000) / 100; $fLon = rand(-18000, 18000) / 100; if ($bVerbose) { echo "{$fLat}, {$fLon} = "; } $oReverseGeocode->setLanguagePreference(array('en')); $oReverseGeocode->setLatLon($fLat, $fLon); $oReverseGeocode->setZoom(20); $aDetails = $oReverseGeocode->lookup(); if ($bVerbose) { echo $aDetails['langaddress'] . "\n"; } else { echo "."; } } echo "\n"; } if (!$aResult['reverse-only']) { $oGeocode =& new Geocode($oDB); echo "Warm search: "; if ($bVerbose) { echo "\n"; } $sSQL = 'select word from word where word is not null order by search_name_count desc limit 1000';