]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/Geocode.php
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / lib / Geocode.php
index 3336790fd650f1536c58d9d0906df391026e0ee0..af3262f9e7e866780be904fa7b870aed52471b33 100644 (file)
@@ -642,12 +642,6 @@ class Geocode
             $oValidTokens = new TokenList();
 
             if (!empty($aTokens)) {
-                $sSQL = 'SELECT word_id, word_token, word, class, type, country_code, operator, search_name_count';
-                $sSQL .= ' FROM word ';
-                $sSQL .= ' WHERE word_token in ('.join(',', $this->oDB->getDBQuotedList($aTokens)).')';
-
-                Debug::printSQL($sSQL);
-
                 $oValidTokens->addTokensFromDB(
                     $this->oDB,
                     $aTokens,
@@ -776,7 +770,7 @@ class Geocode
                         }
                     }
 
-                    if ($iQueryLoop > 20) break;
+                    //if ($iQueryLoop > 20) break;
                 }
 
                 if (!empty($aResults)) {
@@ -848,8 +842,8 @@ class Geocode
                 }
 
                 if (!empty($aResults)) break;
-                if ($iGroupLoop > 4) break;
-                if ($iQueryLoop > 30) break;
+                //if ($iGroupLoop > 4) break;
+                //if ($iQueryLoop > 30) break;
             }
         } else {
             // Just interpret as a reverse geocode
@@ -887,7 +881,6 @@ class Geocode
 
         $aSearchResults = $this->oPlaceLookup->lookup($aResults);
 
-        $aClassType = ClassTypes\getListWithImportance();
         $aRecheckWords = preg_split('/\b[\s,\\-]*/u', $sQuery);
         foreach ($aRecheckWords as $i => $sWord) {
             if (!preg_match('/[\pL\pN]/', $sWord)) unset($aRecheckWords[$i]);
@@ -896,27 +889,23 @@ class Geocode
         Debug::printVar('Recheck words', $aRecheckWords);
 
         foreach ($aSearchResults as $iIdx => $aResult) {
-            // Default
-            $fDiameter = ClassTypes\getProperty($aResult, 'defdiameter', 0.0001);
+            $fRadius = ClassTypes\getDefRadius($aResult);
 
-            $aOutlineResult = $this->oPlaceLookup->getOutlines($aResult['place_id'], $aResult['lon'], $aResult['lat'], $fDiameter/2);
+            $aOutlineResult = $this->oPlaceLookup->getOutlines($aResult['place_id'], $aResult['lon'], $aResult['lat'], $fRadius);
             if ($aOutlineResult) {
                 $aResult = array_merge($aResult, $aOutlineResult);
             }
 
             // Is there an icon set for this type of result?
-            $aClassInfo = ClassTypes\getInfo($aResult);
-
-            if ($aClassInfo) {
-                if (isset($aClassInfo['icon'])) {
-                    $aResult['icon'] = CONST_Website_BaseURL.'images/mapicons/'.$aClassInfo['icon'].'.p.20.png';
-                }
-
-                if (isset($aClassInfo['label'])) {
-                    $aResult['label'] = $aClassInfo['label'];
-                }
+            $sIcon = ClassTypes\getIconFile($aResult);
+            if (isset($sIcon)) {
+                $aResult['icon'] = $sIcon;
             }
 
+            $sLabel = ClassTypes\getLabel($aResult);
+            if (isset($sLabel)) {
+                $aResult['label'] = $sLabel;
+            }
             $aResult['name'] = $aResult['langaddress'];
 
             if ($oCtx->hasNearPoint()) {
@@ -946,10 +935,9 @@ class Geocode
                 // - number of exact matches from the query
                 $aResult['foundorder'] -= $aResults[$aResult['place_id']]->iExactMatches;
                 // - importance of the class/type
-                if (isset($aClassType[$aResult['class'].':'.$aResult['type']]['importance'])
-                    && $aClassType[$aResult['class'].':'.$aResult['type']]['importance']
-                ) {
-                    $aResult['foundorder'] += 0.0001 * $aClassType[$aResult['class'].':'.$aResult['type']]['importance'];
+                $iClassImportance = ClassTypes\getImportance($aResult);
+                if (isset($iClassImportance)) {
+                    $aResult['foundorder'] += 0.0001 * $iClassImportance;
                 } else {
                     $aResult['foundorder'] += 0.01;
                 }