Сығанаҡ файл(SVG файлы, кәмендә 2754 × 1398 нөктә, файлдың дәүмәле: 1,07 Мб)

Ҡыҫҡа аңлатма

Тасуирлау
English: World Map, colour-coded to show the years the countries started of the process of official conversion to the metric system. Using data from PhD thesis by Hector Vera[1] and NIST[2]. Magenta is preliminary 1795, and cyan is 1998; black is for countries having not adopted metric system yet, and grey is for countries with no data on their adoption year. The data used by this map can be viewed by pressing the "Edit" tab and viewing the underlying code.
  1. Vera, Hector (2011-09) The Social Life of Measures: Metrication in the United States and Mexico, 1789–2004 (PhD dissertation)[1], Sociology and Historical Studies, New School for Social Research, pages 51, 494–497
  2. (20 май 1975) The International Bureau of Weights and Measures 1875–1975: NBS Special Publication 420, Washington, D.C.: National Bureau of Standards, стр. 244
Көнө
Сығанаҡ BlankMap-World.svg от various authors
Автор Authors of BlankMap-World.svg
Башҡа өлгөләр
SVG‑разработка
InfoField
 
Исходный код этого SVG-файла корректен.
 
Это векторное изображение было создано с помощью Inkscape и затем отредактировано вручную.
 
Этот файл использует встроенный текст.
Предполагается, что это изображение всегда будет самой свежей версии. Не стесняйтесь обновлять его по мере необходимости.
This file may be updated to reflect new information.
If you wish to use a specific version of the file without new updates being mirrored, please upload the required version as a separate file.
Warning This map should always be accompanied by suitable text for the benefit of readers who suffer from red–green colour-blindness. Suitable text can be extracted from the perl code below
Зтот файл is saved in human-editable plain text format. Any editing of the image or creation of any derivative work should be performed using a text editor. Please do not upload edits saved or exported with Inkscape or similar vector graphics editors, as well as with automated tools such as SVG Translate.
Исходный код
InfoField

SVG code

SVG code
#!/usr/bin/perl -w


use v5.12;
use Data::Dumper;
use strict;
use warnings;

use Graphics::ColorObject;
use Math::Trig;
use SVG::Parser;
use CSS;

use constant DATE_MIN => 1795;
use constant DATE_MAX => 2000;
use constant HUE_START => -60;
use constant HUE_LENGTH => 240;
use constant SATURATION => 0.7;
use constant LIGHTNESS => 0.6;
use constant LEGEND_XLABEL_SIZE => 60;
use constant LEGEND_XPOS => 245;
use constant LEGEND_YPOS => 1250;
use constant LEGEND_XOFF => 100;
use constant LEGEND_YOFF => 50;
use constant LEGEND_WIDTH => 2752.766;
use constant LEGEND_HEIGHT => 250;

my $dates = {
        '1795' => [ 'fr' ],
        '1816' => [ 'nl', 'be', 'lu' ],
        '1840' => [ 'sn', 'dz' ],
        '1849' => [ 'es' ],
        '1852' => [ 'pt' ],
        '1853' => [ 'co', 'mc' ],
        '1857' => [ 'mx', 've' ],
        '1858' => [ 'cu' ],
        '1861' => [ 'it' ],
        '1862' => [ 'pe', 'uy', 'br' ],
        '1864' => [ 'ro' ],                 
        '1865' => [ 'ec', 'cl' ],
        '1867' => [ 'do' ],
        '1868' => [ 'de' , 'bo' ],
        '1869' => [ 'tr' ],
        '1871' => [ 'sr', 'at', 'cz', 'sk', 'hr', 'li', 'si', 'me' ],  
        '1873' => [ 'rs' ],    
        '1874' => [ 'hu', 'se' ],
        '1875' => [ 'ch' ],
        '1876' => [ 'mu' ],
        '1877' => [ 'ar' ],
        '1878' => [ 'ba', 'sc' ],
        '1881' => [ 'cr' ],
        '1882' => [ 'no' ],
        '1884' => [ 'cg', 'ci', 'bj', 'mr', 'ne', 'td' ],
        '1885' => [ 'sv' ],
        '1886' => [ 'fi' ],
        '1888' => [ 'bg', 'mk' ],
        '1891' => [ 'st' ],
        '1893' => [ 'tn', 'ni' ],
        '1895' => [ 'hn' ],
        '1898' => [ 'dj' ],
        '1899' => [ 'py', 'pr' ],
        '1900' => [ 'gq', 'is' ],
        '1901' => [ 'gn' ],   
        '1905' => [ 'mz', 'ao' , 'gw', 'cv' ],  
        '1906' => [ 'ph' ],
        '1907' => [ 'dk', 'sm', 'gl', 'fo' ],    # GL and FO as part of DK
        '1910' => [ 'gt', 'mt', 'bz', 'bi', 'rw', 'cd' ],  
        '1911' => [ 'vn' ],
        '1912' => [ 'th' ],
        '1913' => [ 'cnx' ],    
        '1914' => [ 'km' ],
        '1915' => [ 'pa' ], 
        '1916' => [ 'mn' ],    
        '1918' => [ 'ru' ],
        '1919' => [ 'pl' ],
        '1920' => [ 'ht' ],
        '1922' => [ 'kh', 'ma', 'eh', 'kz', 'kg', 'tj', 'tm', 'uz', 'am', 'az', 'by', 'ee', 'ge', 'lv', 'lt', 'md', 'ua' ],
        '1923' => [ 'ly', 'id', 'af' ],
        '1924' => [ 'tg' ],
        '1927' => [ 'ir' ],
        '1930' => [ 'iq' ],
        '1934' => [ 'sy', 'ad', 'lb' ],
        '1947' => [ 'il' ],
        '1948' => [ 'kp', 'al' ],
        '1949' => [ 'kr' ], 
        '1951' => [ 'eg', 'bt', 'jp' ],
        '1952' => [ 'jo', 'tw' ], 
        '1954' => [ 'sd', 'ss', 'in' ],         # SS was part of SD
        '1957' => [ 'gr', 'mo', 'tl', 'mg' ],
        '1959' => [ 'mv' ],        
        '1960' => [ 'so', 'ga', 'bf', 'ml', 'cf' ],        
        '1961' => [ 'kw', 'cm', 'ae' ],
        '1962' => [ 'et', 'er', 'ng' ],
        '1963' => [ 'np', 'la' ],  
        '1964' => [ 'sa' ],
        '1965' => [ 'gb' ],
        '1967' => [ 'na', 'ie', 'za', 'ke', 'ug', 'tz',  'pk' ],       # NA was part of ZA
        '1968' => [ 'sg'], 
        '1969' => [ 'au', 'nz', 'bs', 'zw', 'bw', 'sz', 'bh', 'gd', 'dm', 'vc', 'kn' ],
        '1970' => [ 'ca', 'lk', 'tt', 'zm', 'ls', 'pg', 'sb' ],
        '1971' => [ 'bm', 'gy', 'my'],        # BM is grouped with GY and MY on the NIST list on p.244
        '1972' => [ 'gh', 'cy', 'fj', 'qa' ],
        '1973' => [ 'bb', 'jm', 'nr' ],
        '1974' => [ 'om', 'ag' ], 
        '1975' => [ 'to' ],
        '1976' => [ 'sl', 'mw', 'gm'], 
        '1978' => [ 'tv' ],
        '1981' => [ 'ye' ],
        '1982' => [ 'bd' ],
        '1984' => [ 'ki' ],
        '1985' => [ 'bn' ],
        '1988' => [ 'vu' ],
        '2000' => [ 'lc' ]
};
my $css = new CSS( { 'parser' => 'CSS::Parse::Lite', 'adaptor' => 'CSS::Adaptor::Pretty' } ); 

my $svg=SVG::Parser->new()->parsefile($ARGV[0]);
my $css_container = $svg->getElementbyID('style_css_sheet');
my $css_data = $css_container->{-cdata};
$css_data =~ s!/\*.*?\*\/!!gs;
$css->read_string( $css_data );
my $hue_start = deg2rad(HUE_START);
my $hue_length = deg2rad(HUE_LENGTH, 1);
foreach my $date( sort keys %$dates ) {
	my $hue = $hue_start + (1-(DATE_MAX - $date)/(DATE_MAX - DATE_MIN)) * $hue_length;
	$css->read_string( sprintf 
		"%s {\n\tfill: #%s;\n}\n",
		join (', ', map { ".$_" } @{$dates->{$date{{),
		Graphics::ColorObject->new_HSL([rad2deg($hue), SATURATION, LIGHTNESS])->as_RGBhex()
	);
}
$css->read_string( ".us, .mm, .lr { fill: #333333 } " );

# say($css->output());
$css->get_style_by_selector( '.landxx' )->get_property_by_name( 'stroke' )->{values} = [new CSS::Value({value => 'black'})];
$css->get_style_by_selector( '.landxx' )->get_property_by_name( 'fill' )->{values} = [new CSS::Value({value => '#FFFFD0'})];
# $css->get_style_by_selector( '.lake' )->get_property_by_name( 'stroke' )->{values} = [new CSS::Value({value => '#1821DE'})];
$css->get_style_by_selector( '.oceanxx' )->get_property_by_name( 'fill' )->{values} = [new CSS::Value({value => '#9ec7f3'})];
my $coastxx = $css->get_style_by_selector( '.coastxx' );
$coastxx->add_property( new CSS::Property( { property => 'stroke', value => '#1821DE' } ) );
$coastxx->add_property( new CSS::Property( { property => 'stroke-opacity', value => '1.0' } ) );
$coastxx->add_property( new CSS::Property( { property => 'stroke-width', value => '0.5' } ) );
my $legend = $svg->group( 
	id => 'legend',
	transform => 'translate('.LEGEND_XPOS.','.LEGEND_YPOS.') scale(0.8)'
);
my $gradient = $legend->gradient(
	-type => "linear",
	id    => "legend_gradient"
);
my $legend_box = $legend->rectangle(
	x     => 0, y      => 0,
	width => LEGEND_WIDTH, height => LEGEND_HEIGHT,
	rx    => 10, ry     => 10,
	id    => 'legend_box'
);

my $gradbox = $legend->rectangle(
	x     => LEGEND_XOFF, y      => LEGEND_YOFF,
	width => LEGEND_WIDTH - LEGEND_XOFF * 2, height => 100,
	id    => 'legend_grad'
);

{
	my $span = scalar keys %$dates;
	my $counter = 0;
	foreach my $date( sort keys %$dates ) {
		my $hue = $hue_start + (1-(DATE_MAX - $date)/(DATE_MAX - DATE_MIN)) * $hue_length;
		$gradient->stop(
			offset => sprintf( "%d%%", $counter / $span * 100 ),
			'stop-color' => '#'.Graphics::ColorObject->new_HSL([rad2deg($hue), SATURATION, LIGHTNESS])->as_RGBhex(),
		);
		++$counter;
	}
	my $datespan = DATE_MAX - DATE_MIN;
	foreach my $id(0..10) {
		my $xpos = LEGEND_XOFF + $id / 10 * (LEGEND_WIDTH - LEGEND_XOFF * 2);
		$legend->line(
			x1 => $xpos - 2,
			x2 => $xpos - 2,
			y1 => LEGEND_YOFF,
			y2 => 170,
			'stroke-width' => '4',
		);
		$legend->text( 
			x =>  $xpos - LEGEND_XLABEL_SIZE,
			y => 220,
			fill => 'black',
			'font-family' => 'sans-serif',
			'fill-opacity' => 1,
			'font-size' => LEGEND_XLABEL_SIZE,
			'stroke' => 'none',
		)->cdata(DATE_MIN + int($id/10 * $datespan) );
	}
}


$css->read_string( "#legend { fill: #d0d0d0; fill-opacity: .3; stroke: black; stroke-width: 10; } " );
$css->read_string( "#legend_grad { fill: url(#legend_gradient); fill-opacity: 1; stroke: black; stroke-width: 1; } " );

$css_container->CDATA( "\n".$css->output() );

print $svg->xmlify();
Мин, был хеҙмәткә авторлыҡ хоҡуҡтары эйәһе, үҙ теләгем менән уны түбәндәге лицензия шарттарына ярашлы баҫтырып сығарам:
Public domain Мин, был хеҙмәткә авторлыҡ хоҡуҡтары эйәһе, уны йәмәғәт милкенә ҡулланыуға тапшырам. Был рөхсәт бөтә донъяла ғәмәлдә.
Ҡайһы бер илдәрҙә был хоҡуҡи йәһәттән мөмкин булмауы ихтимал; был осраҡта:
Әгәр улар ҡанун буйынса талап ителмәһә, мин һәр кемгә был хеҙмәтте төрлө маҡсаттарҙа бер ниндә шарттарһыҙ ҡулланырға рөхсәт итәм.

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл
World map showing countries' year of metrication

Элементы, изображённые на этом файле

һүрәтләнгән объект

Файл тарихы

Файлдың күрһәтелгән ваҡытта ниндәй өлгөлә булғанын ҡарар өсөн баҫығыҙ: Дата/ваҡыт

(Иң һуңғылар | Иң тәүгеләр) (һуңғы 10 | ) (10 | 20 | 50 | 100 | 250 | 500) ҡарарға
Дата/ваҡытМиниатюраҮлсәмдәреҠатнашыусыИҫкәрмә
ағымдағы14:36, 6 сентябрь 201914:36, 6 сентябрь 2019 өлгөһө өсөн миниатюра2754 × 1398 (1,07 Мб)Cherkashchanged legend background color
23:42, 5 сентябрь 201923:42, 5 сентябрь 2019 өлгөһө өсөн миниатюра2754 × 1398 (1,07 Мб)Cherkashadded Faroe Islands
23:00, 5 сентябрь 201923:00, 5 сентябрь 2019 өлгөһө өсөн миниатюра2754 × 1398 (1,07 Мб)Cherkashupdated to the newest baseline blank map, added circles; reused latest version's legend/data with updates: Turkey updated (per Vera ref); no mention in refs of Palestine's differing from Israel; Bermuda moved by one year (per NIST ref)
19:25, 19 июль 201919:25, 19 июль 2019 өлгөһө өсөн миниатюра2560 × 1314 (1,13 Мб)De728631added Turkey, Greenland, West Bank
14:45, 19 июнь 201814:45, 19 июнь 2018 өлгөһө өсөн миниатюра2560 × 1314 (1,06 Мб)AzaTothHue moved 60° down and increased length to 240° from 120°; other changes applied since before.
09:40, 31 июль 201209:40, 31 июль 2012 өлгөһө өсөн миниатюра940 × 477 (1,54 Мб)HtonlAlter CSS to apply same colour to Namibia as South Africa - Namibia (SWA) was at the time part of South Africa and the South African metrication law applied.
02:21, 23 март 200902:21, 23 март 2009 өлгөһө өсөн миниатюра940 × 477 (1,54 Мб)AzaTothcorrectify the gradient
02:13, 23 март 200902:13, 23 март 2009 өлгөһө өсөн миниатюра940 × 477 (1,54 Мб)AzaTothdon't want to have ugly gray there :/
02:11, 23 март 200902:11, 23 март 2009 өлгөһө өсөн миниатюра940 × 477 (1,54 Мб)AzaTothforgot to readd the ocean color
02:07, 23 март 200902:07, 23 март 2009 өлгөһө өсөн миниатюра940 × 477 (1,54 Мб)AzaTothupdated with legend
(Иң һуңғылар | Иң тәүгеләр) (һуңғы 10 | ) (10 | 20 | 50 | 100 | 250 | 500) ҡарарға

Был файлды киләһе бит ҡуллана:

Файлды глобаль ҡулланыу

Был файл түбәндәге википроекттарҙа ҡулланыла:

Метамәғлүмәттәр