]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/lib.php
Merge remote-tracking branch 'upstream/master' into move-mouse-position-info-on-map
[nominatim.git] / lib / lib.php
index ec5b9b1f4330f3a68cce22ef2959767045ddeaaa..3aa80e80d6bb56d0f38d31aa938dd5048d4ad0a0 100644 (file)
@@ -9,14 +9,6 @@
        }
 
 
-       function getLoadAverage()
-       {
-               $sLoadAverage = file_get_contents('/proc/loadavg');
-               $aLoadAverage = explode(' ',$sLoadAverage);
-               return (float)$aLoadAverage[0];
-       }
-
-
        function getProcessorCount()
        {
                $sCPU = file_get_contents('/proc/cpuinfo');
        }
 
 
-       function getPreferredLanguages($sLangString=false)
-       {
-               if (!$sLangString)
-               {
-                       // If we have been provided the value in $_GET it overrides browser value
-                       if (isset($_GET['accept-language']) && $_GET['accept-language'])
-                       {
-                               $_SERVER["HTTP_ACCEPT_LANGUAGE"] = $_GET['accept-language'];
-                               $sLangString = $_GET['accept-language'];
-                       }
-                       else if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
-                       {
-                               $sLangString = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
-                       }
-               }
-
-               $aLanguages = array();
-               if ($sLangString)
-               {
-                       if (preg_match_all('/(([a-z]{1,8})(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $sLangString, $aLanguagesParse, PREG_SET_ORDER))
-                       {
-                               foreach($aLanguagesParse as $iLang => $aLanguage)
-                               {
-                                       $aLanguages[$aLanguage[1]] = isset($aLanguage[5])?(float)$aLanguage[5]:1 - ($iLang/100);
-                                       if (!isset($aLanguages[$aLanguage[2]])) $aLanguages[$aLanguage[2]] = $aLanguages[$aLanguage[1]]/10;
-                               }
-                               arsort($aLanguages);
-                       }
-               }
-               if (!sizeof($aLanguages) && CONST_Default_Language) $aLanguages = array(CONST_Default_Language=>1);
-               foreach($aLanguages as $sLangauge => $fLangauagePref)
-               {
-                       $aLangPrefOrder['short_name:'.$sLangauge] = 'short_name:'.$sLangauge;
-               }
-               foreach($aLanguages as $sLangauge => $fLangauagePref)
-               {
-                       $aLangPrefOrder['name:'.$sLangauge] = 'name:'.$sLangauge;
-               }
-               foreach($aLanguages as $sLangauge => $fLangauagePref)
-               {
-                       $aLangPrefOrder['place_name:'.$sLangauge] = 'place_name:'.$sLangauge;
-               }
-               foreach($aLanguages as $sLangauge => $fLangauagePref)
-               {
-                       $aLangPrefOrder['official_name:'.$sLangauge] = 'official_name:'.$sLangauge;
-               }
-               $aLangPrefOrder['short_name'] = 'short_name';
-               $aLangPrefOrder['name'] = 'name';
-               $aLangPrefOrder['place_name'] = 'place_name';
-               $aLangPrefOrder['official_name'] = 'official_name';
-               $aLangPrefOrder['ref'] = 'ref';
-               $aLangPrefOrder['type'] = 'type';
-               return $aLangPrefOrder;
-       }
-
-
        function getWordSets($aWords, $iDepth)
        {
                $aResult = array(array(join(' ',$aWords)));
        }
 
 
-       function geocodeReverse($fLat, $fLon, $iZoom=18)
-       {
-               $oDB =& getDB();
-
-               $sPointSQL = "ST_SetSRID(ST_Point($fLon,$fLat),4326)";
-
-               // Zoom to rank, this could probably be calculated but a lookup gives fine control
-               $aZoomRank = array(
-                               0 => 2, // Continent / Sea
-                               1 => 2,
-                               2 => 2,
-                               3 => 4, // Country
-                               4 => 4,
-                               5 => 8, // State
-                               6 => 10, // Region
-                               7 => 10,
-                               8 => 12, // County
-                               9 => 12,
-                               10 => 17, // City
-                               11 => 17,
-                               12 => 18, // Town / Village
-                               13 => 18,
-                               14 => 22, // Suburb
-                               15 => 22,
-                               16 => 26, // Street, TODO: major street?
-                               17 => 26,
-                               18 => 30, // or >, Building
-                               19 => 30, // or >, Building
-                               );
-               $iMaxRank = isset($aZoomRank[$iZoom])?$aZoomRank[$iZoom]:28;
-
-               // Find the nearest point
-               $fSearchDiam = 0.0001;
-               $iPlaceID = null;
-               $aArea = false;
-               $fMaxAreaDistance = 1;
-               while(!$iPlaceID && $fSearchDiam < $fMaxAreaDistance)
-               {
-                       $fSearchDiam = $fSearchDiam * 2;
-
-                       // If we have to expand the search area by a large amount then we need a larger feature
-                       // then there is a limit to how small the feature should be
-                       if ($fSearchDiam > 2 && $iMaxRank > 4) $iMaxRank = 4;
-                       if ($fSearchDiam > 1 && $iMaxRank > 9) $iMaxRank = 8;
-                       if ($fSearchDiam > 0.8 && $iMaxRank > 10) $iMaxRank = 10;
-                       if ($fSearchDiam > 0.6 && $iMaxRank > 12) $iMaxRank = 12;
-                       if ($fSearchDiam > 0.2 && $iMaxRank > 17) $iMaxRank = 17;
-                       if ($fSearchDiam > 0.1 && $iMaxRank > 18) $iMaxRank = 18;
-                       if ($fSearchDiam > 0.008 && $iMaxRank > 22) $iMaxRank = 22;
-                       if ($fSearchDiam > 0.001 && $iMaxRank > 26) $iMaxRank = 26;
-
-                       $sSQL = 'select place_id,parent_place_id from placex';
-                       $sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, '.$fSearchDiam.')';
-                       $sSQL .= ' and rank_search != 28 and rank_search >= '.$iMaxRank;
-                       $sSQL .= ' and (name is not null or housenumber is not null)';
-                       $sSQL .= ' and class not in (\'waterway\')';
-                       $sSQL .= ' and (ST_GeometryType(geometry) not in (\'ST_Polygon\',\'ST_MultiPolygon\') ';
-                       $sSQL .= ' OR ST_DWithin('.$sPointSQL.', ST_Centroid(geometry), '.$fSearchDiam.'))';
-                       $sSQL .= ' ORDER BY ST_distance('.$sPointSQL.', geometry) ASC limit 1';
-                       //var_dump($sSQL);
-                       $aPlace = chksql($oDB->getRow($sSQL));
-                       $iPlaceID = $aPlace['place_id'];
-               }
-
-               // The point we found might be too small - use the address to find what it is a child of
-               if ($iPlaceID)
-               {
-                       $sSQL = "select address_place_id from place_addressline where cached_rank_address <= $iMaxRank and place_id = $iPlaceID order by cached_rank_address desc,isaddress desc,distance desc limit 1";
-                       $iPlaceID = chksql($oDB->getOne($sSQL));
-
-                       if ($iPlaceID && $aPlace['place_id'] && $iMaxRank < 28)
-                       {
-                               $sSQL = "select address_place_id from place_addressline where cached_rank_address <= $iMaxRank and place_id = ".$aPlace['place_id']." order by cached_rank_address desc,isaddress desc,distance desc";
-                               $iPlaceID = chksql($oDB->getOne($sSQL));
-                       }
-                       if (!$iPlaceID)
-                       {
-                               $iPlaceID = $aPlace['place_id'];
-                       }
-               }
-
-               return $iPlaceID;
-       }
-
        function addQuotes($s)
        {
                return "'".$s."'";