]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorSarah Hoffmann <lonvia@denofr.de>
Sat, 23 May 2020 14:29:24 +0000 (16:29 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sat, 23 May 2020 14:29:24 +0000 (16:29 +0200)
1  2 
lib/Geocode.php

diff --combined lib/Geocode.php
index 3336790fd650f1536c58d9d0906df391026e0ee0,0c93e0a96e429945d4a795fe32179fcc573f0544..3d6838b6d4045075fcf8f692c75547aff45be59e
@@@ -18,7 -18,7 +18,7 @@@ class Geocod
      protected $aLangPrefOrder = array();
  
      protected $aExcludePlaceIDs = array();
 -    protected $bReverseInPlan = false;
 +    protected $bReverseInPlan = true;
  
      protected $iLimit = 20;
      protected $iFinalLimit = 10;
  
          $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]);
          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()) {
                  // - 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;
                  }