X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/c9d51fe7b8c915e898d95af57dc2c013b9cf84a0..f0f6fcf256c83176dbcda0d0fd4fec977ea8a0ad:/lib/template/details-html.php diff --git a/lib/template/details-html.php b/lib/template/details-html.php index eca76c7e..ae36b411 100644 --- a/lib/template/details-html.php +++ b/lib/template/details-html.php @@ -1,209 +1,283 @@ - - - OpenStreetMap Nominatim: <?php echo $aPointDetails['localname'];?> - - - - - - -
-'; - if ($aPointDetails['icon']) + return ''; + } + + function wikipedia_link($aFeature) + { + if ($aFeature['wikipedia']) + { + list($sWikipediaLanguage,$sWikipediaArticle) = explode(':',$aFeature['wikipedia']); + return ''.$aFeature['wikipedia'].''; + } + return ''; + } + + function nominatim_link($aFeature, $sTitle) { - echo ''; + return ''.$sTitle.''; } - echo $aPointDetails['localname'].''; - echo '
'; - echo '
Name: '; - foreach($aPointDetails['aNames'] as $sKey => $sValue) + + 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) { - echo '
'.$sValue.' ('.$sKey.')
'; + $sHTML = ''; + foreach($aAssociatedList as $sKey => $sValue) + { + $sHTML = $sHTML.'
'.$sValue.' ('.$sKey.')
'."\n"; + } + return $sHTML; } - echo '
'; - echo '
Type: '.$aPointDetails['class'].':'.$aPointDetails['type'].'
'; - echo '
Admin Level: '.$aPointDetails['admin_level'].'
'; - echo '
Rank: '.$aPointDetails['rank_search_label'].'
'; - if ($aPointDetails['importance']) echo '
Importance: '.$aPointDetails['importance'].'
'; - echo '
Coverage: '.($aPointDetails['isarea']=='t'?'Polygon':'Point').'
'; - $sOSMType = ($aPointDetails['osm_type'] == 'N'?'node':($aPointDetails['osm_type'] == 'W'?'way':($aPointDetails['osm_type'] == 'R'?'relation':''))); - if ($sOSMType) echo '
OSM: '.$sOSMType.' '.$aPointDetails['osm_id'].'
'; - echo '
Extra Tags: '; - foreach($aPointDetails['aExtraTags'] as $sKey => $sValue) + + function map_icon($sIcon) { - echo '
'.$sValue.' ('.$sKey.')
'; + 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 ' ' . format_distance($aAddressLine['distance'])."\n"; + echo ' ' . nominatim_link($aAddressLine,'details >') . "\n"; + echo "\n"; } - echo '
'; - echo '
'; - - echo '

Address

'; - echo '
'; - $iPrevRank = 1000000; - $sPrevLocalName = ''; - foreach($aAddressLines as $aAddressLine) - { - $sOSMType = ($aAddressLine['osm_type'] == 'N'?'node':($aAddressLine['osm_type'] == 'W'?'way':($aAddressLine['osm_type'] == 'R'?'relation':''))); - - echo '
'; - if (!($iPrevRank<=$aAddressLine['rank_address'] || $sPrevLocalName == $aAddressLine['localname'])) + + 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)) { - $iPrevRank = $aAddressLine['rank_address']; - $sPrevLocalName = $aAddressLine['localname']; + echo 'word id: '.$word_id; + } + echo "\n"; + } + +?> + + + + + +
+
+
+

+
+
+ +
+
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+ +

Address

+ + + + + + + + + + + + + + + + + + +'.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'No Name').''; - echo ' ('; - echo 'Type: '.$aAddressLine['class'].':'.$aAddressLine['type'].''; - if ($sOSMType) echo ', '.$sOSMType.' '.$aAddressLine['osm_id'].''; - echo ', '.$aAddressLine['admin_level'].''; - echo ', '.$aAddressLine['rank_search_label'].''; - echo ', '.($aAddressLine['fromarea']=='t'?'Polygon':'Point').''; - echo ', '.$aAddressLine['distance'].''; - echo ' GOTO'; - echo ')'; - echo ''; } - echo ''; + + if ($aPlaceSearchNameKeywords) { - echo '

Name Keywords

'; + headline('Name Keywords'); foreach($aPlaceSearchNameKeywords as $aRow) { - echo '
'.$aRow['word_token'].'
'; + _one_keyword_row($aRow['word_token'], $aRow['word_id']); } } if ($aPlaceSearchAddressKeywords) { - echo '

Address Keywords

'; + headline('Address Keywords'); foreach($aPlaceSearchAddressKeywords as $aRow) { - echo '
'.($aRow['word_token'][0]==' '?'*':'').$aRow['word_token'].'('.$aRow['word_id'].')'.'
'; + _one_keyword_row($aRow['word_token'], $aRow['word_id']); } } - + if (sizeof($aParentOfLines)) { - echo '

Parent Of (named features only):

'; + headline('Parent Of'); $aGroupedAddressLines = array(); foreach($aParentOfLines as $aAddressLine) { - if (!isset($aGroupedAddressLines[$aAddressLine['type']])) $aGroupedAddressLines[$aAddressLine['type']] = array(); - $aGroupedAddressLines[$aAddressLine['type']][] = $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); - echo "

$sGroupHeading

"; - foreach($aParentOfLines as $aAddressLine) - { - $aAddressLine['localname'] = $aAddressLine['localname']?$aAddressLine['localname']:$aAddressLine['housenumber']; - $sOSMType = ($aAddressLine['osm_type'] == 'N'?'node':($aAddressLine['osm_type'] == 'W'?'way':($aAddressLine['osm_type'] == 'R'?'relation':''))); - - echo '
'; - echo ''.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'No Name').''; - echo ' ('; -// echo 'Type: '.$aAddressLine['class'].':'.$aAddressLine['type'].''; -// echo ', '.$aAddressLine['admin_level'].''; -// echo ', '.$aAddressLine['rank_address'].''; - echo ''.($aAddressLine['isarea']=='t'?'Polygon':'Point').''; - echo ', ~'.(round($aAddressLine['distance']*69,1)).' miles'; - if ($sOSMType) echo ', '.$sOSMType.' '.$aAddressLine['osm_id'].''; - echo ', GOTO'; - echo ')'; - echo '
'; + headline3($sGroupHeading); + + foreach($aParentOfLines as $aAddressLine) + { + _one_row($aAddressLine); + } } + if (sizeof($aParentOfLines) >= 500) { + echo '

There are more child objects which are not shown.

'; } - echo ''; } -// echo '

Other Parts:

'; -// echo '

Linked To:

'; + echo "
Local nameTypeOSMAdmin levelDistance
\n"; ?> - +
+
+
+ + + + + + +