X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/419f90ed75e91ddb06d4809bc07a580fe08874a3..7a4d550c7aa7d89fd3c27e18dad7470945576a73:/website/reverse.php?ds=sidebyside diff --git a/website/reverse.php b/website/reverse.php index 4cd95016..ab68a849 100755 --- a/website/reverse.php +++ b/website/reverse.php @@ -1,4 +1,6 @@ getOne("select place_id from placex where osm_type = '".$_GET['osm_type']."' and osm_id = ".(int)$_GET['osm_id']." order by type = 'postcode' asc"); + $iPlaceID = $oDB->getOne($sSQL = ("select place_id from placex where osm_type = '".$_GET['osm_type']."' and osm_id = ".(int)$_GET['osm_id']." order by type = 'postcode' asc")); + if (CONST_Debug) var_dump($sSQL); if (!$iPlaceID) $sError = 'OSM ID Not Found'; } else @@ -97,16 +100,16 @@ $sSQL .= ' and (name is not null or housenumber is not null)'; $sSQL .= ' and class not in (\'waterway\',\'railway\',\'tunnel\',\'bridge\')'; $sSQL .= ' and (ST_GeometryType(geometry) not in (\'ST_Polygon\',\'ST_MultiPolygon\') '; - $sSQL .= ' OR ST_DWithin('.$sPointSQL.', ST_Centroid(geometry), '.$fSearchDiam.'))'; + $sSQL .= ' OR ST_DWithin('.$sPointSQL.', centroid, '.$fSearchDiam.'))'; $sSQL .= ' ORDER BY ST_distance('.$sPointSQL.', geometry) ASC limit 1'; -//var_dump($sSQL); + if (CONST_Debug) var_dump($sSQL); $aPlace = $oDB->getRow($sSQL); - $iPlaceID = $aPlace['place_id']; - $iParentPlaceID = $aPlace['parent_place_id']; - if (PEAR::IsError($iPlaceID)) + if (PEAR::IsError($aPlace)) { failInternalError("Could not determine closest place.", $sSQL, $iPlaceID); } + $iPlaceID = $aPlace['place_id']; + $iParentPlaceID = $aPlace['parent_place_id']; } // The point we found might be too small - use the address to find what it is a child of @@ -134,14 +137,15 @@ $sSQL .= " get_address_by_language(place_id, $sLanguagePrefArraySQL) as langaddress,"; $sSQL .= " get_name_by_language(name, $sLanguagePrefArraySQL) as placename,"; $sSQL .= " get_name_by_language(name, ARRAY['ref']) as ref,"; - $sSQL .= " st_y(st_centroid(geometry)) as lat, st_x(st_centroid(geometry)) as lon"; + $sSQL .= " st_y(centroid) as lat, st_x(centroid) as lon"; $sSQL .= " from placex where place_id = $iPlaceID "; -//var_dump($sSQL); + $aPlace = $oDB->getRow($sSQL); +//var_dump($sSQL, $aPlace); exit; if ($bShowAddressDetails) { - $aAddress = getAddressDetails($oDB, $sLanguagePrefArraySQL, $iPlaceID, $aPlace['country_code']); + $aAddress = getAddressDetails($oDB, $sLanguagePrefArraySQL, $iPlaceID, $aPlace['calculated_country_code']); } $aClassType = getClassTypes(); $sAddressType = ''; @@ -160,4 +164,7 @@ $aPlace['addresstype'] = $sAddressType; } + + if (CONST_Debug) exit; + include(CONST_BasePath.'/lib/template/address-'.$sOutputFormat.'.php');