]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/PlaceLookup.php
allow parameters to be empty
[nominatim.git] / lib / PlaceLookup.php
index 07988927c6e6179b70f4177046b8535143dbbbb3..831f6ef6ca4d4e838696843f9db89c709c6cfefb 100644 (file)
 
                function setIncludeExtraTags($bExtraTags = false)
                {
 
                function setIncludeExtraTags($bExtraTags = false)
                {
-                       if ((float) CONST_Postgresql_Version > 9.2)
-                       {
-                               $this->bExtraTags = $bExtraTags;
-                       }
+                       $this->bExtraTags = $bExtraTags;
                }
 
                function setIncludeNameDetails($bNameDetails = false)
                {
                }
 
                function setIncludeNameDetails($bNameDetails = false)
                {
-                       if ((float) CONST_Postgresql_Version > 9.2)
-                       {
-                               $this->bNameDetails = $bNameDetails;
-                       }
+                       $this->bNameDetails = $bNameDetails;
                }
 
 
                }
 
 
                function setOSMID($sType, $iID)
                {
                        $sSQL = "select place_id from placex where osm_type = '".pg_escape_string($sType)."' and osm_id = ".(int)$iID." order by type = 'postcode' asc";
                function setOSMID($sType, $iID)
                {
                        $sSQL = "select place_id from placex where osm_type = '".pg_escape_string($sType)."' and osm_id = ".(int)$iID." order by type = 'postcode' asc";
-                       $this->iPlaceID = $this->oDB->getOne($sSQL);
+                       $this->iPlaceID = chksql($this->oDB->getOne($sSQL));
                }
 
                function lookupPlace($details)
                }
 
                function lookupPlace($details)
 
                        $sLanguagePrefArraySQL = "ARRAY[".join(',',array_map("getDBQuoted", $this->aLangPrefOrder))."]";
 
 
                        $sLanguagePrefArraySQL = "ARRAY[".join(',',array_map("getDBQuoted", $this->aLangPrefOrder))."]";
 
-                       if ($this->sType == 'tiger')
+                       if (CONST_Use_US_Tiger_Data && $this->sType == 'tiger')
                        {
                                $sSQL = "select place_id,partition, 'T' as osm_type, place_id as osm_id, 'place' as class, 'house' as type, null as admin_level, housenumber, null as street, null as isin, postcode,";
                                $sSQL .= " 'us' as country_code, parent_place_id, null as linked_place_id, 30 as rank_address, 30 as rank_search,";
                        {
                                $sSQL = "select place_id,partition, 'T' as osm_type, place_id as osm_id, 'place' as class, 'house' as type, null as admin_level, housenumber, null as street, null as isin, postcode,";
                                $sSQL .= " 'us' as country_code, parent_place_id, null as linked_place_id, 30 as rank_address, 30 as rank_search,";
                        }
                        else if ($this->sType == 'interpolation')
                        {
                        }
                        else if ($this->sType == 'interpolation')
                        {
-                               $sSQL = "select place_id, partition, 'I' as osm_type, osm_id, 'place' as class, 'house' as type, null admin_level, housenumber, null as street, null as isin, postcode,";
+                               $sSQL = "select place_id, partition, 'W' as osm_type, osm_id, 'place' as class, 'house' as type, null admin_level, housenumber, null as street, null as isin, postcode,";
                                $sSQL .= " calculated_country_code as country_code, parent_place_id, null as linked_place_id, 30 as rank_address, 30 as rank_search,";
                                $sSQL .= " calculated_country_code as country_code, parent_place_id, null as linked_place_id, 30 as rank_address, 30 as rank_search,";
-                               $sSQL .= " coalesce(null,0.75-(30::float/40)) as importance, null as indexed_status, null as indexed_date, null as wikipedia, calculated_country_code, ";
+                               $sSQL .= " (0.75-(30::float/40)) as importance, null as indexed_status, null as indexed_date, null as wikipedia, calculated_country_code, ";
                                $sSQL .= " get_address_by_language(place_id, housenumber, $sLanguagePrefArraySQL) as langaddress,";
                                $sSQL .= " null as placename,";
                                $sSQL .= " null as ref,";
                                $sSQL .= " get_address_by_language(place_id, housenumber, $sLanguagePrefArraySQL) as langaddress,";
                                $sSQL .= " null as placename,";
                                $sSQL .= " null as ref,";
                                $sSQL .= " from placex where place_id = ".(int)$this->iPlaceID;
                        }
 
                                $sSQL .= " from placex where place_id = ".(int)$this->iPlaceID;
                        }
 
-                       $aPlace = $this->oDB->getRow($sSQL);
-
-
-                       if (PEAR::IsError($aPlace))
-                       {
-                               failInternalError("Could not lookup place.", $sSQL, $aPlace);
-                       }
+                       $aPlace = chksql($this->oDB->getRow($sSQL), "Could not lookup place");
 
                        if (!$aPlace['place_id']) return null;
 
                        if ($this->bAddressDetails)
                        {
 
                        if (!$aPlace['place_id']) return null;
 
                        if ($this->bAddressDetails)
                        {
-                               if ($this->sType == 'tiger' || $this->sType == 'interpolation') // to get addressdetails for interpolation lines and tiger data, the housenumber is needed
+                               if(CONST_Use_US_Tiger_Data && $this->sType == 'tiger' || $this->sType == 'interpolation') // to get addressdetails for tiger data, the housenumber is needed
                                        $aAddress = $this->getAddressNames($aPlace['housenumber']);
                                else
                                        $aAddress = $this->getAddressNames();
                                        $aAddress = $this->getAddressNames($aPlace['housenumber']);
                                else
                                        $aAddress = $this->getAddressNames();
                        if (!$bAll) $sSQL .= " WHERE isaddress OR type = 'country_code'";
                        $sSQL .= " order by rank_address desc,isaddress desc";
 
                        if (!$bAll) $sSQL .= " WHERE isaddress OR type = 'country_code'";
                        $sSQL .= " order by rank_address desc,isaddress desc";
 
-                       $aAddressLines = $this->oDB->getAll($sSQL);
-                       if (PEAR::IsError($aAddressLines))
-                       {
-                               var_dump($aAddressLines);
-                               exit;
-                       }
-                       return $aAddressLines;
+                       return chksql($this->oDB->getAll($sSQL));
                }
 
                function getAddressNames($housenumber = -1)
                }
 
                function getAddressNames($housenumber = -1)
                                        $sSQL .= $sFrom;
                                }
 
                                        $sSQL .= $sFrom;
                                }
 
-                               $aPointPolygon = $this->oDB->getRow($sSQL);
-                               if (PEAR::IsError($aPointPolygon))
-                               {
-                                       echo var_dump($aPointPolygon);
-                                       failInternalError("Could not get outline.", $sSQL, $aPointPolygon);
-                               }
+                               $aPointPolygon = chksql($this->oDB->getRow($sSQL),
+                                                       "Could not get outline");
 
                                if ($aPointPolygon['place_id'])
                                {
 
                                if ($aPointPolygon['place_id'])
                                {