]> git.openstreetmap.org Git - nominatim.git/blobdiff - utils/warm.php
details page: differentiate between spheric distance and distance in meters
[nominatim.git] / utils / warm.php
old mode 100755 (executable)
new mode 100644 (file)
index 68fa751..8ba746a
@@ -1,12 +1,10 @@
-#!/usr/bin/php -Cq
 <?php
 
 <?php
 
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
 require_once(CONST_BasePath.'/lib/init-cmd.php');
 ini_set('memory_limit', '800M');
 
 $aCMDOptions = array(
 require_once(CONST_BasePath.'/lib/init-cmd.php');
 ini_set('memory_limit', '800M');
 
 $aCMDOptions = array(
-                "Tools to warm nominatim db",
+                '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('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'),
@@ -20,7 +18,8 @@ require_once(CONST_BasePath.'/lib/Geocode.php');
 require_once(CONST_BasePath.'/lib/PlaceLookup.php');
 require_once(CONST_BasePath.'/lib/ReverseGeocode.php');
 
 require_once(CONST_BasePath.'/lib/PlaceLookup.php');
 require_once(CONST_BasePath.'/lib/ReverseGeocode.php');
 
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
 
 $bVerbose = $aResult['verbose'];
 
 
 $bVerbose = $aResult['verbose'];
 
@@ -31,22 +30,18 @@ if (!$aResult['search-only']) {
     $oPlaceLookup->setIncludeAddressDetails(true);
     $oPlaceLookup->setLanguagePreference(array('en'));
 
     $oPlaceLookup->setIncludeAddressDetails(true);
     $oPlaceLookup->setLanguagePreference(array('en'));
 
-    echo "Warm reverse: ";
+    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 = ";
     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 = ";
-        $aLookup = $oReverseGeocode->lookup($fLat, $fLon);
-        if ($aLookup && $aLookup['place_id']) {
-            $aDetails = $oPlaceLookup->lookup(
-                (int)$aLookup['place_id'],
-                $aLookup['type'],
-                $aLookup['fraction']
-            );
+        $oLookup = $oReverseGeocode->lookup($fLat, $fLon);
+        if ($oLookup) {
+            $aDetails = $oPlaceLookup->lookup(array($oLookup->iId => $oLookup));
             if ($bVerbose) echo $aDetails['langaddress']."\n";
         } else {
             if ($bVerbose) echo $aDetails['langaddress']."\n";
         } else {
-            echo ".";
+            echo '.';
         }
     }
     echo "\n";
         }
     }
     echo "\n";
@@ -55,7 +50,7 @@ if (!$aResult['search-only']) {
 if (!$aResult['reverse-only']) {
     $oGeocode = new Nominatim\Geocode($oDB);
 
 if (!$aResult['reverse-only']) {
     $oGeocode = new Nominatim\Geocode($oDB);
 
-    echo "Warm search: ";
+    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';
     foreach ($oDB->getCol($sSQL) as $sWord) {
     if ($bVerbose) echo "\n";
     $sSQL = 'select word from word where word is not null order by search_name_count desc limit 1000';
     foreach ($oDB->getCol($sSQL) as $sWord) {
@@ -64,6 +59,6 @@ if (!$aResult['reverse-only']) {
         $oGeocode->setQuery($sWord);
         $aSearchResults = $oGeocode->lookup();
         if ($bVerbose) echo $aSearchResults[0]['langaddress']."\n";
         $oGeocode->setQuery($sWord);
         $aSearchResults = $oGeocode->lookup();
         if ($bVerbose) echo $aSearchResults[0]['langaddress']."\n";
-        else echo ".";
+        else echo '.';
     }
 }
     }
 }