Template:Tallest building history using EasyTimeline

<!-- Perl script to create above; please do not remove. my $file_out = "Tallest_building_history_using_EasyTimeline.txt"; my $height = 850; my $width = 1600; my $left = 40; my $right = 100; my $bottom = 20; my $text_shift = -32; my $grid_major = 50; my $grid_minor = 10; my $grid_text_shift_x = 5; my $grid_text_shift_y = -5; my $legend_line_x1 = 500; my $legend_line_x2 = 560; my $legend_line_y_start = 787; my $legend_line_y_inc = -25; my $legend_text_x = 570; my $legend_text_y_shift = -5; my @data = ( ["WASHINGTON_MONUMENT","(169_m)_1884-89~|","1884,169",10,0], ["EIFFEL_TOWER","(300_m)_1889-1930","1889,300",0,0], ["OSTANKINO_TOWER","(537_m)_1967-75~|","1967,537",15,0], ["CN_TOWER","(553_m)_1975-2010~|","1975,553",10,0],
 * 1) !/usr/bin/perl

["Griffin_Television_Tower","(480.5_m)_1954-56","1954,480.5",-10,0], ["KOBR-TV_Tower","(490.7_m)_1956-59","1956,490.7",-10,0], ["WGME_TV_Tower","(495_m)_1959-60","1959,495",-5,0], ["KFVS_TV_Mast","(511.1_m)_1960-62","1960,511.1",-10,0], ["WTVM/WRBL-TV_&_WVRK-FM_Tower","(533_m)_1962-63","1962,533",-5,0], ["WIMZ-FM-Tower","(534.01_m)_1963","1963,534.01",5,0], ["KVLY-TV_mast","(628.8_m)_1963-74,1991-2010","1963,628.8",0,0], ["Warsaw_Radio_Mast","(646.4_m)_1974-91","1974,646.4;1991,0",0,0],

["Great_Pyramid","~(146.5-138.8m)~c.2560BC-1300","start,138.8",-5,1], ["Lincoln_Cathedral","~(160_m)_1300-1549","1300,160;1549,83",15,2], ["St_Olaf's_Church","(159_m)_1549-1625","1500,159;1625,123.7",5,3], ["St_Mary's_Church","(151_m)_1625-1647","1495,151;1647,104",-3,4], ["Strasbourg_Cathedral","(142_m)_1647-1874","1439,142",-4,5], ["St._Nikolai","(147_m)_1874-76","1874,147",-5,6], ["Rouen_Cathedral","(151_m)_1876-80","1876,151",3,7], ["Cologne_Cathedral","(157.38_m)_1880-90~|","1880,157.38",10,6], ["Ulm_Minster","(161.53_m)_1890-1901~|~|","1890,161.53 ",30,6], ["Philadelphia_City_Hall","(167_m)_1901-08~|~|~|","1901,167",40,8], ["Singer_Building","(186.57_m)_1908-09~|~|~|","1908,186.57;1968,0",40,9], ["Metropolitan_Life_Tower","(213.36_m)_1909-13~|~|","1909,213.36",30,9], ["Woolworth_Building","(241_m)_1913-30~|","1913,241",20,9], ["40_Wall_Street","(283_m)_1930","1930,283",0,9], ["Chrysler_Building","(319.9_m)_1930-31","1930,319.9",0,9], ["Empire_State_Building","(381_m)_1931-72","1931,381",0,9], ["World_Trade_Center","(417_m)_1972-74","1972,417;2001,0",0,9], ["Sears_Tower","(442_m)_1974-98","1974,442",-5,10], ["Petronas_Towers","(451.9_m)_1998-2004","1998,451.9",0,11], ["Taipei_101","(509.2_m)_2004-10","2004,509.2",5,12], ["Burj_Khalifa","(828_m)_2010-present","2010,828",-10,13], undef); my @legend = ( ["(Tallest_non-building_structures_for_comparison)","tan1"],

["Egypt","orange"], ["England","claret"], ["Denmark","coral"], ["Hansestadt_Stralsund","magenta"], ["France","brightgreen"], ["Germany","black"], ["France","blue"], ["Philadelphia,_USA","powderblue"], ["New_York,_USA","brightblue"], ["Chicago,_USA","oceanblue"], ["Malaysia","yellow"], ["Republic_of_China","red"], ["United_Arab_Emirates","green"], undef); my $out_plotdata = ""; my $out_linedata = ""; my $out_textdata = ""; my $is_ghost, $was_ghost = undef;

foreach (@data) { $_ || last; my $name = $_->[0]; my @coords = split(/;/, $_->[2]); my $text_pos = $_->[3]; my $colour = $legend[$_->[4]]->[1]; $is_ghost = ($_->[4] <= 0); my $detail = ($is_ghost ? $name : "${name}"). "_" . $_->[1]; my $coord_at, $coord_pos, $coord_at_old, $coord_pos_old = undef; my $grid_i, $grid_pos_line, $grid_text_x, $grid_text_y, $grid_text;
 * 1) Plot items

if ($is_ghost ne $was_ghost) { $out_plotdata .= " fontsize:". ($is_ghost ? "S" : "M"). "\n"; $was_ghost = $is_ghost; } foreach (@coords) { ($coord_at, $coord_pos) = split(/,/, $_); $coord_pos += $bottom; if (defined($coord_pos_old)) { # Not first iteration of coords $out_linedata .= <<ENDSVG; from:${coord_at_old} till:${coord_at} atpos:${coord_pos_old} color:${colour} at:${coord_at} frompos:${coord_pos_old} tillpos:${coord_pos} color:${colour} ENDSVG } else { # First iteration of coords $text_pos += $coord_pos + $text_shift; $out_plotdata .= <= $bottom) { if ($coord_pos == $bottom) { # Show end --$coord_at_old; ++$coord_at; } else { $coord_at = "end"; } $out_linedata .= <<ENDSVG; from:${coord_at_old} till:${coord_at} atpos:${coord_pos} color:${colour} ENDSVG } print "${name}\n"; }
 * 1) Plot polyline

for ($grid_i = $grid_minor; $grid_i < $height - $bottom; ++$grid_i) { $grid_pos_line = $grid_i + $bottom; if ($grid_i % $grid_major == 0) { $grid_text_x = $width - $right + $grid_text_shift_x; $grid_text_y = $grid_pos_line + $grid_text_shift_y; $grid_text = ($grid_i < 100 ? "_" : ""). $grid_i; $out_linedata .= <[0], $legend_colour = $legend[$grid_i]->[1];
 * 1) Plot legend

foreach (@legend) { $_ || last; my $legend_text = $_->[0], $legend_colour = $_->[1]; my $legend_text_y = $legend_line_y + $legend_text_y_shift; $out_textdata .= <$file_out"); print FILE_OUT <<ENDSVG;