X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/c2b68c337b398aff21bc04d51b83f42608bbbbc8..b838f66dd7d43826057650c63fe62c4d69fd6682:/lib/template/details-html.php diff --git a/lib/template/details-html.php b/lib/template/details-html.php index d5c18252..c15e74c8 100644 --- a/lib/template/details-html.php +++ b/lib/template/details-html.php @@ -1,278 +1,268 @@ - - + + - -

".$sTitle."

\n"; - } - - function headline3($sTitle) - { - echo "

".$sTitle."

\n"; - } - - function osm_link($aFeature) - { - $sOSMType = ($aFeature['osm_type'] == 'N'?'node':($aFeature['osm_type'] == 'W'?'way':($aFeature['osm_type'] == 'R'?'relation':''))); - if ($sOSMType) - { - return ''.$sOSMType.' '.$aFeature['osm_id'].''; - } - return ''; - } - - function wikipedia_link($aFeature) - { - if ($aFeature['wikipedia']) - { - list($sWikipediaLanguage,$sWikipediaArticle) = explode(':',$aFeature['wikipedia']); - return ''.$aFeature['wikipedia'].''; - } - return ''; - } - - function nominatim_link($aFeature, $sTitle) - { - return ''.$sTitle.''; - } - - function format_distance($fDistance) - { - // $fDistance is in meters - if ($fDistance < 1) - { - return '0'; - } - elseif ($fDistance < 1000) - { - return'~'.(round($fDistance,0)).' m'; - } - else - { - return'~'.(round($fDistance/1000,1)).' km'; - } - } - - function kv($sKey,$sValue) - { - echo ' ' . $sKey . ''.$sValue.''. "\n"; - } - - - function hash_to_subtable($aAssociatedList) - { - $sHTML = ''; - foreach($aAssociatedList as $sKey => $sValue) - { - $sHTML = $sHTML.'
'.$sValue.' ('.$sKey.')
'."\n"; - } - return $sHTML; - } - - // function hash_to_subtable($aAssociatedList) - // { - // $sHTML = ''; - // foreach($aAssociatedList as $sKey => $sValue) - // { - // $sHTML = $sHTML . ''."\n"; - // } - // $sHTML = $sHTML . '
'.$sKey.''.$sValue.'
'; - // return $sHTML; - // } - - - function map_icon($sIcon) - { - if ($sIcon){ - echo ''.$sIcon.''; - } - } - - - function _one_row($aAddressLine){ - $bNotUsed = (isset($aAddressLine['isaddress']) && $aAddressLine['isaddress'] == 'f'); - - echo ''."\n"; - echo ' '.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'No Name')."\n"; - echo ' ' . $aAddressLine['class'].':'.$aAddressLine['type'] . "\n"; - echo ' ' . osm_link($aAddressLine) . "\n"; - echo ' ' . (isset($aAddressLine['admin_level']) ? $aAddressLine['admin_level'] : '') . "\n"; - // echo '' . (isset($aAddressLine['rank_search_label']) ? $aAddressLine['rank_search_label'] : '') ."\n"; - // echo ', '.($aAddressLine['fromarea']=='t'?'Polygon':'Point').''; - echo ' ' . format_distance($aAddressLine['distance'])."\n"; - echo ' ' . nominatim_link($aAddressLine,'details >') . "\n"; - echo "\n"; - } + function headline($sTitle) + { + echo "

".$sTitle."

\n"; + } + + function headline3($sTitle) + { + echo "

".$sTitle."

\n"; + } + + + function format_distance($fDistance, $bInMeters = false) + { + 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)).''; + } + } + } + + function kv($sKey,$sValue) + { + echo ' ' . $sKey . ''.$sValue.''. "\n"; + } + + + function hash_to_subtable($aAssociatedList) + { + $sHTML = ''; + foreach ($aAssociatedList as $sKey => $sValue) { + $sHTML = $sHTML.'
'.$sValue.' ('.$sKey.')
'."\n"; + } + return $sHTML; + } + + function map_icon($aPlace) + { + $sIcon = Nominatim\ClassTypes\getIconFile($aPlace); + if (isset($sIcon)) { + $sLabel = Nominatim\ClassTypes\getIcon($aPlace); + echo ''.$sLabel.''; + } + } + + + function _one_row($aAddressLine, $bDistanceInMeters = false){ + $bNotUsed = isset($aAddressLine['isaddress']) && !$aAddressLine['isaddress']; + + echo ''."\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'], $bDistanceInMeters)."\n"; + echo ' ' . detailsPermaLink($aAddressLine,'details >') . "\n"; + echo "\n"; + } + + function _one_keyword_row($keyword_token,$word_id){ + echo "\n"; + echo ''; + // mark partial tokens (those starting with a space) with a star for readability + echo ($keyword_token[0]==' '?'*':''); + echo $keyword_token; + if (isset($word_id)) + { + echo 'word id: '.$word_id; + } + echo "\n"; + } ?> -
-
-
-

-
-
- -
-
-
-
- - - - -
-
- -
-
-
- -
-
-
- -

Address

- - - - - - - - - - - - - - - - - + +
+
+
+

+ +

+
+
+ +
+
+
+
+
Local nameTypeOSMAdmin levelDistance
+ + 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']?'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) ); + } + + kv('Computed Postcode', $aPointDetails['postcode']); + kv('Address Tags' , hash_to_subtable($aPointDetails['aAddressTags']) ); + kv('Extra Tags' , hash_to_subtable($aPointDetails['aExtraTags']) ); + + ?> + +
+
+ +
+
+
+ +
+
+
+ +

Address

+ + + + + + + + + + + + + + + + '.$aRow['word_token']."\n"; - } - } - - if ($aPlaceSearchAddressKeywords) - { - headline('Address Keywords'); - foreach($aPlaceSearchAddressKeywords as $aRow) - { - echo '
'.($aRow['word_token'][0]==' '?'*':'').$aRow['word_token'].'('.$aRow['word_id'].')'."
\n"; - } - } - - if (sizeof($aParentOfLines)) - { - headline('Parent Of'); - - $aGroupedAddressLines = array(); - foreach($aParentOfLines as $aAddressLine) - { - if ($aAddressLine['type'] == 'yes') $sType = $aAddressLine['class']; - else $sType = $aAddressLine['type']; - - if (!isset($aGroupedAddressLines[$sType])) - $aGroupedAddressLines[$sType] = array(); - $aGroupedAddressLines[$sType][] = $aAddressLine; - } - foreach($aGroupedAddressLines as $sGroupHeading => $aParentOfLines) - { - $sGroupHeading = ucwords($sGroupHeading); - headline3($sGroupHeading); - - foreach($aParentOfLines as $aAddressLine) - { - _one_row($aAddressLine); - } - } - if (sizeof($aParentOfLines) >= 500) { - echo '

There are more child objects which are not shown.

'; - } - } - - // headline('Other Parts'); - // headline('Linked To'); - - echo "
Local nameTypeOSMAddress rankAdmin levelDistance
\n"; + if ($aLinkedLines) + { + headline('Linked Places'); + foreach ($aLinkedLines as $aAddressLine) { + _one_row($aAddressLine, true); + } + } + + if ($bIncludeKeywords) + { + headline('Name Keywords'); + if ($aPlaceSearchNameKeywords) { + foreach ($aPlaceSearchNameKeywords as $aRow) { + _one_keyword_row($aRow['word_token'], $aRow['word_id']); + } + } + + headline('Address Keywords'); + if ($aPlaceSearchAddressKeywords) { + foreach ($aPlaceSearchAddressKeywords as $aRow) { + _one_keyword_row($aRow['word_token'], $aRow['word_id']); + } + } + } + + if (!empty($aHierarchyLines)) + { + headline('Parent Of'); + + $aGroupedAddressLines = array(); + foreach ($aHierarchyLines as $aAddressLine) { + if ($aAddressLine['type'] == 'yes') $sType = $aAddressLine['class']; + else $sType = $aAddressLine['type']; + + if (!isset($aGroupedAddressLines[$sType])) + $aGroupedAddressLines[$sType] = array(); + $aGroupedAddressLines[$sType][] = $aAddressLine; + } + foreach ($aGroupedAddressLines as $sGroupHeading => $aHierarchyLines) { + $sGroupHeading = ucwords($sGroupHeading); + headline3($sGroupHeading); + + foreach ($aHierarchyLines as $aAddressLine) { + _one_row($aAddressLine, true); + } + } + if (count($aHierarchyLines) >= 500) { + echo '

There are more child objects which are not shown.

'; + } + } + + echo "\n"; ?> -
-
-
+ + + + + + ?> + - +