]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/Geocode.php
go through entire member list when checking waterway relations
[nominatim.git] / lib / Geocode.php
index 19fad13d26795bacf6c67d753d41da5c0e3b538b..7563a26d54e326691ccb982b39124832abcf23dd 100644 (file)
                                                                        if (CONST_Debug) var_dump($sSQL);
                                                                        $aPlaceIDs = $this->oDB->getCol($sSQL);
                                                                }
+                                                               else
+                                                               {
+                                                                       $aPlaceIDs = array();
+                                                               }
                                                        }
                                                        else
                                                        {
                                                                $sPlaceIDs = join(',',$aPlaceIDs);
 
                                                                // Now they are indexed look for a house attached to a street we found
-                                                               $sHouseNumberRegex = '\\\\m'.str_replace(' ','[-,/ ]',$aSearch['sHouseNumber']).'\\\\M';
-                                                               $sSQL = "select place_id from placex where parent_place_id in (".$sPlaceIDs.") and housenumber ~* E'".$sHouseNumberRegex."'";
+                                                               $sHouseNumberRegex = '\\\\m'.$aSearch['sHouseNumber'].'\\\\M';
+                                                               $sSQL = "select place_id from placex where parent_place_id in (".$sPlaceIDs.") and transliteration(housenumber) ~* E'".$sHouseNumberRegex."'";
                                                                if (sizeof($this->aExcludePlaceIDs))
                                                                {
                                                                        $sSQL .= " and place_id not in (".join(',',$this->aExcludePlaceIDs).")";
                                                                                        }
                                                                                        if ($sCountryCodesSQL) $sSQL .= " and lp.calculated_country_code in ($sCountryCodesSQL)";
                                                                                        if ($sOrderBySQL) $sSQL .= "order by ".$sOrderBySQL." asc";
-                                                                                       if ($iOffset) $sSQL .= " offset $iOffset";
+                                                                                       if ($this->iOffset) $sSQL .= " offset $this->iOffset";
                                                                                        $sSQL .= " limit $this->iLimit";
                                                                                        if (CONST_Debug) var_dump($sSQL);
                                                                                        $aClassPlaceIDs = array_merge($aClassPlaceIDs, $this->oDB->getCol($sSQL));
                                                                                        }
                                                                                        if ($sCountryCodesSQL) $sSQL .= " and l.calculated_country_code in ($sCountryCodesSQL)";
                                                                                        if ($sOrderBy) $sSQL .= "order by ".$OrderBysSQL." asc";
-                                                                                       if ($iOffset) $sSQL .= " offset $iOffset";
+                                                                                       if ($this->iOffset) $sSQL .= " offset $this->iOffset";
                                                                                        $sSQL .= " limit $this->iLimit";
                                                                                        if (CONST_Debug) var_dump($sSQL);
                                                                                        $aClassPlaceIDs = array_merge($aClassPlaceIDs, $this->oDB->getCol($sSQL));