Ofbyld:Metrication by year map.svg

Oarspronklik bestân(SVG-bestân, nominaal 2.754 × 1.398 pixels, bestânsgrutte: 1,07 MB)

Dit bestân komt fan Wikimedia Commons, en kin ek troch oare projekten brûkt wurde. De beskriuwing op syn bestânsside dêre wurdt hjirûnder werjûn.

Gearfetting

Beskriuwing
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 maaie 1975) The International Bureau of Weights and Measures 1875–1975: NBS Special Publication 420, Washington, D.C.: National Bureau of Standards, p. 244
Datum
Boarne BlankMap-World.svg by various authors
Auteur Authors of BlankMap-World.svg
Oare ferzjes
SVG genesis
InfoField
 
The SVG code is valid.
 
This world map was created with Inkscape, and then manually edited
.
 
This world map uses embedded text.
This image is expected to always be the most recent one. Feel free to update it when needed.
This file may be updated to reflect new information.
If you wish to use a specific version of the file without it being overwritten, 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
This file 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.
Source code
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();
I, the copyright holder of this work, hereby publish it under the following license:
Public domain I, the copyright holder of this work, release this work into the public domain. This applies worldwide.
In some countries this may not be legally possible; if so:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Any autoconfirmed user can overwrite this file from the same source. Please ensure that overwrites comply with the guideline.

Captions

Add a one-line explanation of what this file represents
World map showing countries' year of metrication

Items portrayed in this file

depicts Ingelsk

Triemskiednis

Klik op in datum/tiid om it bestân te besjen sa't it op dat stuit wie.

(nijste | âldste) Besjoch (10 nijer | ) (10 | 20 | 50 | 100 | 250 | 500)
Datum/TiidMiniatuerôfmjittingsMeidoggerOpmerking
lêste6 sep 2019, 16.36Miniatuer foar de ferzje fan 6 sep 2019 om 16.362.754 × 1.398 (1,07 MB)Cherkashchanged legend background color
6 sep 2019, 01.42Miniatuer foar de ferzje fan 6 sep 2019 om 01.422.754 × 1.398 (1,07 MB)Cherkashadded Faroe Islands
6 sep 2019, 01.00Miniatuer foar de ferzje fan 6 sep 2019 om 01.002.754 × 1.398 (1,07 MB)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 jul 2019, 21.25Miniatuer foar de ferzje fan 19 jul 2019 om 21.252.560 × 1.314 (1,13 MB)De728631added Turkey, Greenland, West Bank
19 jun 2018, 16.45Miniatuer foar de ferzje fan 19 jun 2018 om 16.452.560 × 1.314 (1,06 MB)AzaTothHue moved 60° down and increased length to 240° from 120°; other changes applied since before.
31 jul 2012, 11.40Miniatuer foar de ferzje fan 31 jul 2012 om 11.40940 × 477 (1,54 MB)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.
23 mrt 2009, 04.21Miniatuer foar de ferzje fan 23 mrt 2009 om 04.21940 × 477 (1,54 MB)AzaTothcorrectify the gradient
23 mrt 2009, 04.13Miniatuer foar de ferzje fan 23 mrt 2009 om 04.13940 × 477 (1,54 MB)AzaTothdon't want to have ugly gray there :/
23 mrt 2009, 04.11Miniatuer foar de ferzje fan 23 mrt 2009 om 04.11940 × 477 (1,54 MB)AzaTothforgot to readd the ocean color
23 mrt 2009, 04.07Miniatuer foar de ferzje fan 23 mrt 2009 om 04.07940 × 477 (1,54 MB)AzaTothupdated with legend
(nijste | âldste) Besjoch (10 nijer | ) (10 | 20 | 50 | 100 | 250 | 500)

De neikommende side brûkt dit bestân:

Globaal bestânsgebrûk

De neikommende oare wiki's brûke dit bestân:

Mear globaal gebrûk fan dit bestân besjen.

Metadata