]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/lib.php
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / lib / lib.php
index e200202bd6d869136e8fcda26eee8bbc6cb3a650..d1afedbd68414278f90dbcb1906c6c067c06147c 100644 (file)
                exit;
        }
 
+       function getParamBool($name, $default=false)
+       {
+               if (!isset($_GET[$name])) return $default;
+
+               return (bool) $_GET[$name];
+       }
 
        function fail($sError, $sUserError = false)
        {
        {
                $aResult = array(array(join(' ',$aWords)));
                $sFirstToken = '';
-               if ($iDepth < 8) {
+               if ($iDepth < 7) {
                        while(sizeof($aWords) > 1)
                        {
                                $sWord = array_shift($aWords);
                return $aResult;
        }
 
+       function getInverseWordSets($aWords, $iDepth)
+       {
+               $aResult = array(array(join(' ',$aWords)));
+               $sFirstToken = '';
+               if ($iDepth < 8)
+               {
+                       while(sizeof($aWords) > 1)
+                       {
+                               $sWord = array_pop($aWords);
+                               $sFirstToken = $sWord.($sFirstToken?' ':'').$sFirstToken;
+                               $aRest = getInverseWordSets($aWords, $iDepth+1);
+                               foreach($aRest as $aSet)
+                               {
+                                       $aResult[] = array_merge(array($sFirstToken),$aSet);
+                               }
+                       }
+               }
+               return $aResult;
+       }
+
 
        function getTokensFromSets($aSets)
        {
  'landuse:farm' => array('label'=>'Farm','frequency'=>1201,'icon'=>'', 'defdiameter' => 0.02,),
  'place:farm' => array('label'=>'Farm','frequency'=>1162,'icon'=>'', 'defdiameter' => 0.02,),
 
- 'highway:motorway_junction' => array('label'=>'Motorway Junction','frequency'=>1126,'icon'=>'','simplelabel'=>'Road',),
+ 'highway:motorway_junction' => array('label'=>'Motorway Junction','frequency'=>1126,'icon'=>'','simplelabel'=>'Junction',),
  'highway:motorway' => array('label'=>'Motorway','frequency'=>4627,'icon'=>'','simplelabel'=>'Road',),
  'highway:trunk' => array('label'=>'Trunk','frequency'=>23084,'icon'=>'','simplelabel'=>'Road',),
  'highway:primary' => array('label'=>'Primary','frequency'=>32138,'icon'=>'','simplelabel'=>'Road',),
  'tourism:hotel' => array('label'=>'Hotel','frequency'=>2150,'icon'=>'accommodation_hotel2',),
  'tourism:motel' => array('label'=>'Motel','frequency'=>43,'icon'=>'',),
  'amenity:cinema' => array('label'=>'Cinema','frequency'=>277,'icon'=>'tourist_cinema',),
- 'tourism:information' => array('label'=>'Information','frequency'=>224,'icon'=>'amenity_information',),
  'tourism:artwork' => array('label'=>'Artwork','frequency'=>171,'icon'=>'tourist_art_gallery2',),
  'historic:archaeological_site' => array('label'=>'Archaeological Site','frequency'=>407,'icon'=>'tourist_archaeological2',),
  'amenity:doctors' => array('label'=>'Doctors','frequency'=>581,'icon'=>'health_doctors',),
  'shop:electronics' => array('label'=>'Electronics','frequency'=>96,'icon'=>'',),
  'shop:department_store' => array('label'=>'Department Store','frequency'=>86,'icon'=>'',),
  'shop:books' => array('label'=>'Books','frequency'=>85,'icon'=>'',),
- 'shop:yes' => array('label'=>'Yes','frequency'=>68,'icon'=>'',),
+ 'shop:yes' => array('label'=>'Shop','frequency'=>68,'icon'=>'',),
  'shop:outdoor' => array('label'=>'Outdoor','frequency'=>67,'icon'=>'',),
  'shop:mall' => array('label'=>'Mall','frequency'=>63,'icon'=>'',),
  'shop:florist' => array('label'=>'Florist','frequency'=>61,'icon'=>'',),
  'shop:travel_agency' => array('label'=>'Travel Agency','frequency'=>21,'icon'=>'',),
  'shop:hifi' => array('label'=>'Hifi','frequency'=>21,'icon'=>'',),
  'amenity:shop' => array('label'=>'Shop','frequency'=>61,'icon'=>'',),
+ 'tourism:information' => array('label'=>'Information','frequency'=>224,'icon'=>'amenity_information',),
 
  'place:house' => array('label'=>'House','frequency'=>2086,'icon'=>'','defzoom'=>18,),
  'place:house_name' => array('label'=>'House','frequency'=>2086,'icon'=>'','defzoom'=>18,),
  'natural:beach' => array('label'=>'Beach','frequency'=>121,'icon'=>'tourist_beach',),
  'place:moor' => array('label'=>'Moor','frequency'=>118,'icon'=>'',),
  'amenity:grave_yard' => array('label'=>'Grave Yard','frequency'=>110,'icon'=>'',),
- 'waterway:derelict_canal' => array('label'=>'Derelict Canal','frequency'=>109,'icon'=>'',),
  'waterway:drain' => array('label'=>'Drain','frequency'=>108,'icon'=>'',),
  'landuse:grass' => array('label'=>'Grass','frequency'=>106,'icon'=>'',),
  'landuse:village_green' => array('label'=>'Village Green','frequency'=>106,'icon'=>'',),
  'historic:roman_road' => array('label'=>'Roman Road','frequency'=>27,'icon'=>'',),
  'historic:fort' => array('label'=>'Fort','frequency'=>26,'icon'=>'',),
  'railway:subway_entrance' => array('label'=>'Subway Entrance','frequency'=>26,'icon'=>'',),
- 'historic:yes' => array('label'=>'Yes','frequency'=>25,'icon'=>'',),
+ 'historic:yes' => array('label'=>'Historic','frequency'=>25,'icon'=>'',),
  'highway:gate' => array('label'=>'Gate','frequency'=>25,'icon'=>'',),
  'leisure:fishing' => array('label'=>'Fishing','frequency'=>24,'icon'=>'',),
  'historic:museum' => array('label'=>'Museum','frequency'=>24,'icon'=>'',),
 
  'place:houses' => array('label'=>'Houses','frequency'=>85,'icon'=>'',),
  'railway:preserved' => array('label'=>'Preserved','frequency'=>227,'icon'=>'',),
- 'waterway:derelict canal' => array('label'=>'Derelict Canal','frequency'=>21,'icon'=>'',),
+ 'waterway:derelict_canal' => array('label'=>'Derelict Canal','frequency'=>21,'icon'=>'',),
  'amenity:dead_pub' => array('label'=>'Dead Pub','frequency'=>20,'icon'=>'',),
  'railway:disused_station' => array('label'=>'Disused Station','frequency'=>114,'icon'=>'',),
  'railway:abandoned' => array('label'=>'Abandoned','frequency'=>641,'icon'=>'',),
        }
 
 
-       function javascript_renderData($xVal)
+       function javascript_renderData($xVal, $iOptions = 0)
        {
                header("Access-Control-Allow-Origin: *");
-               $jsonout = json_encode($xVal);
+               if (defined('PHP_VERSION_ID') && PHP_VERSION_ID > 50400)
+                       $iOptions |= JSON_UNESCAPED_UNICODE;
+               $jsonout = json_encode($xVal, $iOptions);
 
                if( ! isset($_GET['json_callback']))
                {
                }
                // degrees decimal seconds
                // N 40 26 46 W 79 58 56
-               // N 40° 26′ 46″ W, 79° 58′ 56″
+               // N 40° 26′ 46″, W 79° 58′ 56″
                //                      1        2            3            4                5        6            7            8
                elseif (preg_match('/\\b([NS])[ ]([0-9]+)[° ]+([0-9]+)[′\' ]+([0-9]+)[″"]*[, ]+([EW])[ ]([0-9]+)[° ]+([0-9]+)[′\' ]+([0-9]+)[″"]*\\b/', $sQuery, $aData))
                {
                $sQuery = trim(str_replace($sFound, ' ', $sQuery));
 
                return array('lat' => $fQueryLat, 'lon' => $fQueryLon, 'query' => $sQuery);
-       }
\ No newline at end of file
+       }