]> git.openstreetmap.org Git - nominatim.git/commitdiff
respect exclude_place_ids in poi searches
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 18 Jan 2013 21:27:18 +0000 (22:27 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 18 Jan 2013 21:27:18 +0000 (22:27 +0100)
website/search.php

index cea1ec030ce81c477230f1a81af2939ceba9d7eb..e00d8791b2afb9490bf2dc95810271b5ae827a8e 100755 (executable)
                                                                if ($sCountryCodesSQL) $sSQL .= " join placex using (place_id)";
                                                                $sSQL .= " where st_contains($sViewboxSmallSQL, ct.centroid)";
                                                                if ($sCountryCodesSQL) $sSQL .= " and country_code in ($sCountryCodesSQL)";                                                             
+                                                               if (sizeof($aExcludePlaceIDs))
+                                                               {
+                                                                       $sSQL .= " and place_id not in (".join(',',$aExcludePlaceIDs).")";
+                                                               }
                                                                if ($sViewboxCentreSQL) $sSQL .= " order by st_distance($sViewboxCentreSQL, ct.centroid) asc";
                                                                $sSQL .= " limit $iLimit";
                                                                if (CONST_Debug) var_dump($sSQL);
                                                                $aPlaceIDs = $oDB->getCol($sSQL);
 
-                                                               if (!sizeof($aPlaceIDs))
+                                                               // If excluded place IDs are given, it is fair to assume that
+                                                               // there have been results in the small box, so no further
+                                                               // expansion in that case.
+                                                               if (!sizeof($aPlaceIDs) && !sizeof($aExcludePlaceIDs))
                                                                {
                                                                        $sSQL = "select place_id from place_classtype_".$aSearch['sClass']."_".$aSearch['sType']." ct";
                                                                        if ($sCountryCodesSQL) $sSQL .= " join placex using (place_id)";