From: Sarah Hoffmann Date: Fri, 6 Jul 2018 20:14:02 +0000 (+0200) Subject: Merge remote-tracking branch 'upstream/master' X-Git-Tag: deploy~321 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/e52ee350618d8cbbe2ab147bfb2cef6507d6e12e?hp=-c Merge remote-tracking branch 'upstream/master' --- e52ee350618d8cbbe2ab147bfb2cef6507d6e12e diff --combined lib/Geocode.php index 18526f43,a991914e..acd2f76c --- a/lib/Geocode.php +++ b/lib/Geocode.php @@@ -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; @@@ -249,6 -249,12 +249,12 @@@ $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 4e150a51,9c6368f0..95251723 --- a/website/reverse.php +++ b/website/reverse.php @@@ -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');