X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/1e902ef60797be97f8b95cc716af01789e8be14c..054ea58df11dc3f82563b44d9e1f3a46198b1de7:/lib/template/details-html.php diff --git a/lib/template/details-html.php b/lib/template/details-html.php index 00d6ba63..c15e74c8 100644 --- a/lib/template/details-html.php +++ b/lib/template/details-html.php @@ -20,20 +20,25 @@ } - function format_distance($fDistance) + function format_distance($fDistance, $bInMeters = false) { - // $fDistance is in meters - if ($fDistance < 1) - { - return '0'; - } - elseif ($fDistance < 1000) - { - return'~'.(round($fDistance,0)).' m'; - } - else - { - return'~'.(round($fDistance/1000,1)).' km'; + if ($bInMeters) { + // $fDistance is in meters + if ($fDistance < 1) { + return '0'; + } + elseif ($fDistance < 1000) { + return '~'.(round($fDistance,0)).' m'; + } + else { + return '~'.(round($fDistance/1000,1)).' km'; + } + } else { + if ($fDistance == 0) { + return '0'; + } else { + return ''.(round($fDistance,4)).''; + } } } @@ -46,32 +51,39 @@ function hash_to_subtable($aAssociatedList) { $sHTML = ''; - foreach($aAssociatedList as $sKey => $sValue) - { + foreach ($aAssociatedList as $sKey => $sValue) { $sHTML = $sHTML.'
'.$sValue.' ('.$sKey.')
'."\n"; } return $sHTML; } - function map_icon($sIcon) + function map_icon($aPlace) { - if ($sIcon){ - echo ''.$sIcon.''; + $sIcon = Nominatim\ClassTypes\getIconFile($aPlace); + if (isset($sIcon)) { + $sLabel = Nominatim\ClassTypes\getIcon($aPlace); + echo ''.$sLabel.''; } } - function _one_row($aAddressLine){ - $bNotUsed = (isset($aAddressLine['isaddress']) && $aAddressLine['isaddress'] == 'f'); + function _one_row($aAddressLine, $bDistanceInMeters = false){ + $bNotUsed = isset($aAddressLine['isaddress']) && !$aAddressLine['isaddress']; echo ''."\n"; - echo ' '.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'No Name')."\n"; - echo ' ' . $aAddressLine['class'].':'.$aAddressLine['type'] . "\n"; + echo ' '.(trim($aAddressLine['localname'])!==null?$aAddressLine['localname']:'No Name')."\n"; + echo ' ' . $aAddressLine['class'].':'.$aAddressLine['type']; + if ($aAddressLine['type'] == 'administrative' + && isset($aAddressLine['place_type'])) + { + echo '('.$aAddressLine['place_type'].')'; + } + echo "\n"; echo ' ' . osmLink($aAddressLine) . "\n"; echo ' ' . (isset($aAddressLine['rank_address']) ? $aAddressLine['rank_address'] : '') . "\n"; echo ' ' . ($aAddressLine['admin_level'] < 15 ? $aAddressLine['admin_level'] : '') . "\n"; - echo ' ' . format_distance($aAddressLine['distance'])."\n"; - echo ' ' . detailsLink($aAddressLine,'details >') . "\n"; + echo ' ' . format_distance($aAddressLine['distance'], $bDistanceInMeters)."\n"; + echo ' ' . detailsPermaLink($aAddressLine,'details >') . "\n"; echo "\n"; } @@ -99,11 +111,10 @@

-

- +
@@ -114,15 +125,17 @@ kv('Name' , hash_to_subtable($aPointDetails['aNames']) ); kv('Type' , $aPointDetails['class'].':'.$aPointDetails['type'] ); - kv('Last Updated' , $aPointDetails['indexed_date'] ); + kv('Last Updated' , (new DateTime('@'.$aPointDetails['indexed_epoch']))->format(DateTime::RFC822) ); kv('Admin Level' , $aPointDetails['admin_level'] ); kv('Rank' , $aPointDetails['rank_search_label'] ); if ($aPointDetails['calculated_importance']) { kv('Importance' , $aPointDetails['calculated_importance'].($aPointDetails['importance']?'':' (estimated)') ); } - kv('Coverage' , ($aPointDetails['isarea']=='t'?'Polygon':'Point') ); + kv('Coverage' , ($aPointDetails['isarea']?'Polygon':'Point') ); kv('Centre Point' , $aPointDetails['lat'].','.$aPointDetails['lon'] ); kv('OSM' , osmLink($aPointDetails) ); + kv('Place Id (on this server)' + , $aPointDetails['place_id'] ); if ($aPointDetails['wikipedia']) { kv('Wikipedia Calculated' , wikipediaLink($aPointDetails) ); @@ -162,13 +175,10 @@ - $aParentOfLines) - { + foreach ($aGroupedAddressLines as $sGroupHeading => $aHierarchyLines) { $sGroupHeading = ucwords($sGroupHeading); headline3($sGroupHeading); - foreach($aParentOfLines as $aAddressLine) - { - _one_row($aAddressLine); + foreach ($aHierarchyLines as $aAddressLine) { + _one_row($aAddressLine, true); } } - if (count($aParentOfLines) >= 500) { + if (count($aHierarchyLines) >= 500) { echo '

There are more child objects which are not shown.

'; } } @@ -252,7 +255,7 @@ 'lon' => $aPointDetails['lon'], 'lat' => $aPointDetails['lat'], ); - echo 'var nominatim_result = ' . json_encode($aPlace, JSON_PRETTY_PRINT) . ';'; + echo 'var nominatim_result = ' . json_encode($aPlace, JSON_PRETTY_PRINT) . ';'; ?>