File:Metrication by year map.svg

Commons – repozytorium wolnych multimediów
Przejdź do nawigacji Przejdź do wyszukiwania

Rozmiar pierwotny(Plik SVG, nominalnie 2754 × 1398 pikseli, rozmiar pliku: 1,07 MB)

Podpisy

Podpisy

Dodaj jednolinijkowe objaśnienie tego, co ten plik pokazuje
World map showing countries' year of metrication

Opis[edytuj]

Opis
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 maja 1975) The International Bureau of Weights and Measures 1875–1975: NBS Special Publication 420, Washington, D.C.: National Bureau of Standards, s. 244
Data
Źródło BlankMap-World.svg od various authors
Autor Authors of BlankMap-World.svg
Inne wersje
SVG rozwój
InfoField
 
Kod źródłowy tego poprawny.
 
Ta grafika wektorowa została stworzona za pomocą Inkscape, a następnie ręcznie zedytowana
.
 
This world map uses embedded text.
Oczekuje się, by ta grafika była stale aktualna. Aktualizuj ją śmiało, jeśli jest taka potrzeba.
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
Ta mapa 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.
Kod źródłowy
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();
Ja, właściciel praw autorskich do tego dzieła, udostępniam je na poniższej licencji
Public domain Ja, właściciel praw autorskich do tej pracy, udostępniam ją jako własność publiczną. Dotyczy to całego świata.
W niektórych krajach może nie być to prawnie możliwe, jeśli tak, to:
Zapewniam każdemu prawo do użycia tej pracy w dowolnym celu, bez żadnych ograniczeń, chyba że te ograniczenia są wymagane przez prawo.

Historia pliku

Kliknij na odpowiedniej dacie/czasie, aby zobaczyć wersję pliku z tamtego okresu.

(od najnowszych | od najstarszych) Zobacz (10 nowszych | ) (10 | 20 | 50 | 100 | 250 | 500)
Data/czasMiniaturaWymiaryUżytkownikOpis
aktualny14:36, 6 wrz 2019Miniatura wersji z 14:36, 6 wrz 20192754 × 1398 (1,07 MB)Cherkash (dyskusja | edycje)changed legend background color
23:42, 5 wrz 2019Miniatura wersji z 23:42, 5 wrz 20192754 × 1398 (1,07 MB)Cherkash (dyskusja | edycje)added Faroe Islands
23:00, 5 wrz 2019Miniatura wersji z 23:00, 5 wrz 20192754 × 1398 (1,07 MB)Cherkash (dyskusja | edycje)updated 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 lip 2019Miniatura wersji z 19:25, 19 lip 20192560 × 1314 (1,13 MB)De728631 (dyskusja | edycje)added Turkey, Greenland, West Bank
14:45, 19 cze 2018Miniatura wersji z 14:45, 19 cze 20182560 × 1314 (1,06 MB)AzaToth (dyskusja | edycje)Hue moved 60° down and increased length to 240° from 120°; other changes applied since before.
09:40, 31 lip 2012Miniatura wersji z 09:40, 31 lip 2012940 × 477 (1,54 MB)Htonl (dyskusja | edycje)Alter 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 mar 2009Miniatura wersji z 02:21, 23 mar 2009940 × 477 (1,54 MB)AzaToth (dyskusja | edycje)correctify the gradient
02:13, 23 mar 2009Miniatura wersji z 02:13, 23 mar 2009940 × 477 (1,54 MB)AzaToth (dyskusja | edycje)don't want to have ugly gray there :/
02:11, 23 mar 2009Miniatura wersji z 02:11, 23 mar 2009940 × 477 (1,54 MB)AzaToth (dyskusja | edycje)forgot to readd the ocean color
02:07, 23 mar 2009Miniatura wersji z 02:07, 23 mar 2009940 × 477 (1,54 MB)AzaToth (dyskusja | edycje)updated with legend
(od najnowszych | od najstarszych) Zobacz (10 nowszych | ) (10 | 20 | 50 | 100 | 250 | 500)

Globalne wykorzystanie pliku

Ten plik jest wykorzystywany także w innych projektach wiki:

Metadane