X-Git-Url: https://git.openstreetmap.org/nominatim.git/blobdiff_plain/12c1deeb8a313873af7c33c878f48a819305b483..f822b04dbe7caf9794b4f206fd8b75ad0ceafd15:/lib/lib.php?ds=sidebyside

diff --git a/lib/lib.php b/lib/lib.php
index 998e0429..482e9598 100644
--- a/lib/lib.php
+++ b/lib/lib.php
@@ -165,18 +165,20 @@
 	}
 
 
-	function getWordSets($aWords)
+	function getWordSets($aWords, $iDepth)
 	{
 		$aResult = array(array(join(' ',$aWords)));
 		$sFirstToken = '';
-		while(sizeof($aWords) > 1)
-		{
-			$sWord = array_shift($aWords);
-			$sFirstToken .= ($sFirstToken?' ':'').$sWord;
-			$aRest = getWordSets($aWords);
-			foreach($aRest as $aSet)
+		if ($iDepth < 7) {
+			while(sizeof($aWords) > 1)
 			{
-				$aResult[] = array_merge(array($sFirstToken),$aSet);
+				$sWord = array_shift($aWords);
+				$sFirstToken .= ($sFirstToken?' ':'').$sWord;
+				$aRest = getWordSets($aWords, $iDepth+1);
+				foreach($aRest as $aSet)
+				{
+					$aResult[] = array_merge(array($sFirstToken),$aSet);
+				}
 			}
 		}
 		return $aResult;
@@ -244,7 +246,13 @@
 
 		if (sizeof($aNearPostcodes))
 		{
-			return array(array('lat' => $aNearPostcodes[0]['lat'], 'lon' => $aNearPostcodes[0]['lon'], 'radius' => 0.005));
+			$aPostcodes = array();
+			foreach($aNearPostcodes as $aPostcode)
+			{
+				$aPostcodes[] = array('lat' => $aPostcode['lat'], 'lon' => $aPostcode['lon'], 'radius' => 0.005);
+			}
+
+			return $aPostcodes;
 		}
 
 		return false;
@@ -783,20 +791,6 @@
 	}
 
 
-	function getWordSuggestions(&$oDB, $sWord)
-	{
-		$sWordQuoted = getDBQuoted(trim($sWord));
-		$sSQL = "select *,levenshtein($sWordQuoted,word) from test_token ";
-		$sSQL .= "where (metaphone = dmetaphone($sWordQuoted) or metaphonealt = dmetaphone($sWordQuoted) or ";
-		$sSQL .= "metaphone = dmetaphone_alt($sWordQuoted) or metaphonealt = dmetaphone_alt($sWordQuoted)) ";
-		$sSQL .= "and len between length($sWordQuoted)-2 and length($sWordQuoted)+2 ";
-		$sSQL .= "and levenshtein($sWordQuoted,word) < 3 ";
-		$sSQL .= "order by levenshtein($sWordQuoted,word) asc, abs(len - length($sWordQuoted)) asc limit 20";
-		$aSimilar = $oDB->getAll($sSQL);
-		return $aSimilar;
-	}
-
-
 	function geocodeReverse($fLat, $fLon, $iZoom=18)
 	{
 		$oDB =& getDB();
@@ -858,12 +852,12 @@
 			$sSQL .= ' ORDER BY ST_distance('.$sPointSQL.', geometry) ASC limit 1';
 			//var_dump($sSQL);
 			$aPlace = $oDB->getRow($sSQL);
-			$iPlaceID = $aPlace['place_id'];
-			if (PEAR::IsError($iPlaceID))
+			if (PEAR::IsError($aPlace))
 			{
-				var_Dump($sSQL, $iPlaceID);
+				var_Dump($sSQL, $aPlace);
 				exit;
 			}
+			$iPlaceID = $aPlace['place_id'];
 		}
 
 		// The point we found might be too small - use the address to find what it is a child of
@@ -896,16 +890,7 @@
 		return $iPlaceID;
 	}
 
-	function loadStructuredAddressElement(&$aStructuredQuery, &$iMinAddressRank, &$iMaxAddressRank, $aParams, $sKey, $iNewMinAddressRank, $iNewMaxAddressRank)
+	function addQuotes($s)
 	{
-		if (!isset($_GET[$sKey])) return false;
-		$sValue = trim($_GET[$sKey]);
-		if (!$sValue) return false;
-		$aStructuredQuery[$sKey] = $sValue;
-		if ($iMinAddressRank == 0 && $iMaxAddressRank == 30)
-		{
-			$iMinAddressRank = $iNewMinAddressRank;
-			$iMaxAddressRank = $iNewMaxAddressRank;
-		}
-		return true;
+		return "'".$s."'";
 	}