X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/44ee8d9ce34a4a60113b6600dcc7b2f5b24c7a0e..914caab43d233a5eee17129f529a77c262bcc524:/website/reverse.php diff --git a/website/reverse.php b/website/reverse.php index bd852e32..74bd700d 100755 --- a/website/reverse.php +++ b/website/reverse.php @@ -49,25 +49,27 @@ $sOsmType = $oParams->getSet('osm_type', array('N', 'W', 'R')); $iOsmId = $oParams->getInt('osm_id', -1); $fLat = $oParams->getFloat('lat'); $fLon = $oParams->getFloat('lon'); +$iZoom = $oParams->getInt('zoom'); if ($sOsmType && $iOsmId > 0) { $aPlace = $oPlaceLookup->lookupOSMID($sOsmType, $iOsmId); } elseif ($fLat !== false && $fLon !== false) { $oReverseGeocode = new Nominatim\ReverseGeocode($oDB); - $oReverseGeocode->setZoom($oParams->getInt('zoom', 18)); + $oReverseGeocode->setZoom($iZoom !== false ? $iZoom : 18); - $aLookup = $oReverseGeocode->lookup($fLat, $fLon); - if (CONST_Debug) var_dump($aLookup); + $oLookup = $oReverseGeocode->lookup($fLat, $fLon); + if (CONST_Debug) var_dump($oLookup); - $aPlace = $oPlaceLookup->lookup( - (int)$aLookup['place_id'], - $aLookup['type'], - $aLookup['fraction'] - ); + if ($oLookup) { + $aPlaces = $oPlaceLookup->lookup(array($oLookup->iId => $oLookup)); + if (sizeof($aPlaces)) { + $aPlace = reset($aPlaces); + } + } } elseif ($sOutputFormat != 'html') { userError("Need coordinates or OSM object to lookup."); } -if ($aPlace) { +if (isset($aPlace)) { $oPlaceLookup->setIncludePolygonAsPoints(false); $oPlaceLookup->setIncludePolygonAsText($bAsText); $oPlaceLookup->setIncludePolygonAsGeoJSON($bAsGeoJSON); @@ -86,6 +88,8 @@ if ($aPlace) { if ($aOutlineResult) { $aPlace = array_merge($aPlace, $aOutlineResult); } +} else { + $aPlace = []; } @@ -94,7 +98,7 @@ if (CONST_Debug) { exit; } -if ($sOutputFormat=='html') { +if ($sOutputFormat == 'html') { $sDataDate = chksql($oDB->getOne("select TO_CHAR(lastimportdate - '2 minutes'::interval,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1")); $sTileURL = CONST_Map_Tile_URL; $sTileAttribution = CONST_Map_Tile_Attribution;