X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/369a0974bde0951ac01bd72a421e9f60b52ad7c7..bc449e10be56e2225dec7a2256f92977850c5ea9:/lib/template/details-html.php diff --git a/lib/template/details-html.php b/lib/template/details-html.php index 51374918..3e9e39d7 100644 --- a/lib/template/details-html.php +++ b/lib/template/details-html.php @@ -1,226 +1,301 @@ - - - - OpenStreetMap Nominatim: <?php echo $aPointDetails['localname'];?> - - - - - - -
'; - if ($aPointDetails['icon']) + + function headline($sTitle) + { + echo "

".$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) { - echo ''.$aPointDetails['icon'].''; + return ''.$sTitle.''; } - echo $aPointDetails['localname']."\n"; - 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 '
'.$sValue.' ('.$sKey.')
'; + echo ' ' . $sKey . ''.$sValue.''. "\n"; } - echo '
'; - echo '
Type: '.$aPointDetails['class'].':'.$aPointDetails['type'].'
'; - echo '
Last Updated: '.$aPointDetails['indexed_date'].'
'; - echo '
Admin Level: '.$aPointDetails['admin_level'].'
'; - echo '
Rank: '.$aPointDetails['rank_search_label'].'
'; - if ($aPointDetails['calculated_importance']) echo '
Importance: '.$aPointDetails['calculated_importance'].($aPointDetails['importance']?'':' (estimated)').'
'; - echo '
Coverage: '.($aPointDetails['isarea']=='t'?'Polygon':'Point').'
'; - echo '
Centre Point: '.$aPointDetails['lat'].','.$aPointDetails['lon'].'
'; - $sOSMType = ($aPointDetails['osm_type'] == 'N'?'node':($aPointDetails['osm_type'] == 'W'?'way':($aPointDetails['osm_type'] == 'R'?'relation':''))); - if ($sOSMType) echo '
OSM: '.$sOSMType.' '.$aPointDetails['osm_id'].'
'; - if ($aPointDetails['wikipedia']) + + + function hash_to_subtable($aAssociatedList) { - list($sWikipediaLanguage,$sWikipediaArticle) = explode(':',$aPointDetails['wikipedia']); - echo '
Wikipedia Calculated: '.$aPointDetails['wikipedia'].'
'; + $sHTML = ''; + foreach($aAssociatedList as $sKey => $sValue) + { + $sHTML = $sHTML.'
'.$sValue.' ('.$sKey.')
'."\n"; + } + return $sHTML; } - echo '
Extra Tags: '; - foreach($aPointDetails['aExtraTags'] as $sKey => $sValue) + + // function hash_to_subtable($aAssociatedList) + // { + // $sHTML = ''; + // foreach($aAssociatedList as $sKey => $sValue) + // { + // $sHTML = $sHTML . ''."\n"; + // } + // $sHTML = $sHTML . '
'.$sKey.''.$sValue.'
'; + // return $sHTML; + // } + + + 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 '' . (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"; } - echo '
'; - echo "
\n"; - - echo "

Address

\n"; - 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 ''.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'No Name').''; - echo ' ('; - echo 'Type: '.$aAddressLine['class'].':'.$aAddressLine['type'].''; - if ($sOSMType) echo ', '.$sOSMType.' '.$aAddressLine['osm_id'].''; - if (isset($aAddressLine['admin_level'])) echo ', '.$aAddressLine['admin_level'].''; - if (isset($aAddressLine['rank_search_label'])) echo ', '.$aAddressLine['rank_search_label'].''; -// echo ', '.($aAddressLine['fromarea']=='t'?'Polygon':'Point').''; - echo ', '.$aAddressLine['distance'].''; - echo ' GOTO'; - echo ')'; - echo "
\n"; + echo "\n"; } - echo "
\n"; + +?> + + + + + +
+
+
+

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

Address

+ + + + + + + + + + + + + + + + + + + +Linked Places\n"; - echo '
'; + headline('Linked Places'); foreach($aLinkedLines as $aAddressLine) { - $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'].''; - if ($sOSMType) echo ', '.$sOSMType.' '.$aAddressLine['osm_id'].''; - echo ', '.$aAddressLine['admin_level'].''; - if (isset($aAddressLine['rank_search_label'])) echo ', '.$aAddressLine['rank_search_label'].''; -// echo ', '.($aAddressLine['fromarea']=='t'?'Polygon':'Point').''; - echo ', '.$aAddressLine['distance'].''; - echo ' GOTO'; - echo ')'; - echo "
\n"; + _one_row($aAddressLine); } - echo "
\n"; } + + if ($aPlaceSearchNameKeywords) { - echo '

Name Keywords

'; + headline('Name Keywords'); foreach($aPlaceSearchNameKeywords as $aRow) { - echo '
'.$aRow['word_token']."
\n"; + _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'].')'."
\n"; + _one_keyword_row($aRow['word_token'], $aRow['word_id']); } } - + if (sizeof($aParentOfLines)) { - echo "

Parent Of:

\n
\n"; + 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

\n"; - 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 ''.($aAddressLine['isarea']=='t'?'Polygon':'Point').''; - echo ', ~'.(round($aAddressLine['distance']*69,1)).' miles'; - if ($sOSMType) echo ', '.$sOSMType.' '.$aAddressLine['osm_id'].''; - echo ', GOTO'; - echo ')'; - echo "
\n"; - } + 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:

'; + // headline('Other Parts'); + // headline('Linked To'); + + echo "
Local nameTypeOSMAdmin levelDistance
\n"; ?> - +
+
+
+ + + + + + +