X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/946f35e7ff04801da791528a18c81e858590c534..bd529c1f9d8ea547a0b41855147e4672f7d84b00:/website/reverse.php diff --git a/website/reverse.php b/website/reverse.php index aac99c0d..4cd95016 100755 --- a/website/reverse.php +++ b/website/reverse.php @@ -69,7 +69,7 @@ 18 => 30, // or >, Building 19 => 30, // or >, Building ); - $iMaxRank = isset($aZoomRank[$_GET['zoom']])?$aZoomRank[$_GET['zoom']]:28; + $iMaxRank = (isset($_GET['zoom']) && isset($aZoomRank[$_GET['zoom']]))?$aZoomRank[$_GET['zoom']]:28; // Find the nearest point $fSearchDiam = 0.0001; @@ -95,7 +95,7 @@ $sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, '.$fSearchDiam.')'; $sSQL .= ' and rank_search != 28 and rank_search >= '.$iMaxRank; $sSQL .= ' and (name is not null or housenumber is not null)'; - $sSQL .= ' and class not in (\'waterway\')'; + $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 .= ' ORDER BY ST_distance('.$sPointSQL.', geometry) ASC limit 1'; @@ -144,13 +144,20 @@ $aAddress = getAddressDetails($oDB, $sLanguagePrefArraySQL, $iPlaceID, $aPlace['country_code']); } $aClassType = getClassTypes(); - $sAddressType = ''; - if (isset($aClassType[$aPlace['class'].':'.$aPlace['type'].':'.$aPlace['admin_level']])) - $sAddressType = $aClassType[$aPlace['class'].':'.$aPlace['type'].':'.$aPlace['admin_level']]['simplelabel']; - elseif (isset($aClassType[$aPlace['class'].':'.$aPlace['type']])) - $sAddressType = $aClassType[$aPlace['class'].':'.$aPlace['type']]['simplelabel']; - else $sAddressType = $aPlace['class']; - $aPlace['addresstype'] = $sAddressType; + $sAddressType = ''; + $sClassType = $aPlace['class'].':'.$aPlace['type'].':'.$aPlace['admin_level']; + if (isset($aClassType[$sClassType]) && isset($aClassType[$sClassType]['simplelabel'])) + { + $sAddressType = $aClassType[$aClassType]['simplelabel']; + } + else + { + $sClassType = $aPlace['class'].':'.$aPlace['type']; + if (isset($aClassType[$sClassType]) && isset($aClassType[$sClassType]['simplelabel'])) + $sAddressType = $aClassType[$sClassType]['simplelabel']; + else $sAddressType = $aPlace['class']; + } + $aPlace['addresstype'] = $sAddressType; } include(CONST_BasePath.'/lib/template/address-'.$sOutputFormat.'.php');