예제 #1
0
 function __construct()
 {
     $method = isset($_GET['method']) ? $_GET['method'] : false;
     if (!$method) {
         $this->error("No method given");
     } else {
         switch ($method) {
             case "tweets":
                 $call = new Tweets();
                 break;
             case "reverse.geocode":
                 $call = new ReverseGeocode();
                 break;
             default:
                 $this->error("Invalid method name");
         }
         if ($call->getResponse()) {
             $this->output($call->getResponse());
         } else {
             $this->error("Error while doing the call");
         }
     }
 }
예제 #2
0
파일: reverse.php 프로젝트: Xevib/Nominatim
}
$oDB =& getDB();
ini_set('memory_limit', '200M');
// Format for output
$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));
예제 #3
0
파일: reverse.php 프로젝트: a4x/Nominatim
}
// 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';
예제 #4
0
#!/usr/bin/php -Cq
<?php 
require_once dirname(dirname(__FILE__)) . '/lib/init-cmd.php';
ini_set('memory_limit', '800M');
$aCMDOptions = array("Tools to warm nominatim db", array('help', 'h', 0, 1, 0, 0, false, 'Show Help'), array('quiet', 'q', 0, 1, 0, 0, 'bool', 'Quiet output'), array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'), array('reverse-only', '', 0, 1, 0, 0, 'bool', 'Warm reverse only'), array('search-only', '', 0, 1, 0, 0, 'bool', 'Warm reverse only'));
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
require_once CONST_BasePath . '/lib/log.php';
require_once CONST_BasePath . '/lib/Geocode.php';
require_once CONST_BasePath . '/lib/PlaceLookup.php';
require_once CONST_BasePath . '/lib/ReverseGeocode.php';
$oDB =& getDB();
$bVerbose = $aResult['verbose'];
if (!$aResult['search-only']) {
    $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";