]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 6 Jul 2018 20:14:02 +0000 (22:14 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 6 Jul 2018 20:14:02 +0000 (22:14 +0200)
1  2 
lib/Geocode.php
website/reverse.php

diff --combined lib/Geocode.php
index 18526f4382531fd2a9fa3a3b246970934690f821,a991914eb11662445745794b9495fecfd0cb8d54..acd2f76cca713e6c1ab98f79deae0972dee3587e
@@@ -20,7 -20,7 +20,7 @@@ class Geocod
      protected $bIncludeAddressDetails = false;
  
      protected $aExcludePlaceIDs = array();
 -    protected $bReverseInPlan = false;
 +    protected $bReverseInPlan = true;
  
      protected $iLimit = 20;
      protected $iFinalLimit = 10;
          $this->oPlaceLookup->loadParamArray($oParams, $sForceGeometryType);
          $this->oPlaceLookup->setIncludeAddressDetails(false);
          $this->oPlaceLookup->setIncludePolygonAsPoints($oParams->getBool('polygon'));
+         if ($this->bIncludeAddressDetails
+             && $oParams->getString('format', '') == 'geocodejson'
+            ) {
+             $this->oPlaceLookup->setAddressAdminLevels(true);
+         }
      }
  
      public function setQueryFromParams($oParams)
diff --combined website/reverse.php
index 4e150a510f2480d515b8c2a3bc7fee28e7a5f85d,9c6368f0e1b73f0e3d352438499eff56b487409d..952517235d81903ddb3b3188172251935b618d0b
@@@ -12,7 -12,7 +12,7 @@@ ini_set('memory_limit', '200M')
  $oParams = new Nominatim\ParameterParser();
  
  // Format for output
- $sOutputFormat = $oParams->getSet('format', array('html', 'xml', 'json', 'jsonv2'), 'xml');
+ $sOutputFormat = $oParams->getSet('format', array('html', 'xml', 'json', 'jsonv2', 'geojson', 'geocodejson'), 'xml');
  
  // Preferred language
  $aLangPrefOrder = $oParams->getPreferredLanguages();
@@@ -23,6 -23,10 +23,10 @@@ $hLog = logStart($oDB, 'reverse', $_SER
  
  $oPlaceLookup = new Nominatim\PlaceLookup($oDB);
  $oPlaceLookup->loadParamArray($oParams);
+ if ($sOutputFormat == 'geocodejson') {
+     $oPlaceLookup->setIncludeAddressDetails(true);
+     $oPlaceLookup->setAddressAdminLevels(true);
+ }
  
  $sOsmType = $oParams->getSet('osm_type', array('N', 'W', 'R'));
  $iOsmId = $oParams->getInt('osm_id', -1);
@@@ -55,9 -59,9 +59,9 @@@ if (isset($aPlace)) 
          $aPlace['place_id'],
          $aPlace['lon'],
          $aPlace['lat'],
-         $fRadius, 
-         $fLat, 
-         $fLon 
+         $fRadius,
+         $fLat,
+         $fLon
      );
  
      if ($aOutlineResult) {
@@@ -67,7 -71,6 +71,7 @@@
      $aPlace = array();
  }
  
 +logEnd($oDB, $hLog, sizeof($aPlace)?1:0);
  
  if (CONST_Debug) {
      var_dump($aPlace);
@@@ -78,7 -81,12 +82,12 @@@ if ($sOutputFormat == 'html') 
      $sDataDate = chksql($oDB->getOne("select TO_CHAR(lastimportdate,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1"));
      $sTileURL = CONST_Map_Tile_URL;
      $sTileAttribution = CONST_Map_Tile_Attribution;
+ } elseif ($sOutputFormat == 'geocodejson') {
+     $sQuery = $fLat.','.$fLon;
+     if (isset($aPlace['place_id'])) {
+         $fDistance = chksql($oDB->getOne('SELECT ST_Distance(ST_SetSRID(ST_Point('.$fLon.','.$fLat.'),4326), centroid) FROM placex where place_id='.$aPlace['place_id']));
+     }
  }
  
- $sOutputTemplate = ($sOutputFormat=='jsonv2' ? 'json' : $sOutputFormat);
+ $sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat;
  include(CONST_BasePath.'/lib/template/address-'.$sOutputTemplate.'.php');