Datei:Weltkartenvorlage fuer Modifikation.svg: Unterschied zwischen den Versionen

Aus Shadowhelix
Zur Navigation springen Zur Suche springen
({{Karteninfo |LIZENZ=[http://creativecommons.org/licenses/by-nc/3.0/ Creative Commons Attribution-Noncommercial Unported 3.0] |AUSSCHNITT=180° westl. Laenge, 180° oestl. Laenge, 90° suedl. Breite, 90° noerdl. Breite |PROJEKTION=Robinson-Projektion |QU)
 
Zeile 8: Zeile 8:


==Skript zur Einfärbung==
==Skript zur Einfärbung==
Folgendes Perlskript sollte zur Ausführung in eine Datei mit der Endung .pl kopiert werden. Zur Ausführung benötigt man Perl (auf den meisten Linuxdistributionen vorinstalliert). Gegebenenfalls muss auch das "Encode"-Paket z.B. über CPAN nachinstalliert werden.
Folgendes Perlskript sollte in eine Datei mit der Endung .pl kopiert werden. Zur Ausführung benötigt man Perl (auf den meisten Linuxdistributionen vorinstalliert). Gegebenenfalls muss auch das "Encode"-Paket z.B. über CPAN nachinstalliert werden.


<pre>
<pre>

Version vom 18. April 2012, 00:14 Uhr

Übersicht
Lizenz Creative Commons Attribution-Noncommercial Unported 3.0
Kartenauschnitt 180° westl. Laenge, 180° oestl. Laenge, 90° suedl. Breite, 90° noerdl. Breite
Projektion Robinson-Projektion
Datenquelle Global Administrative Areas [1]
CIA World DataBank II [2]
Shadowrun-Karten (in Form übertragener Geodaten)
Beschreibung Weltkartenvorlage zur Modifikation

Skript zur Einfärbung

Folgendes Perlskript sollte in eine Datei mit der Endung .pl kopiert werden. Zur Ausführung benötigt man Perl (auf den meisten Linuxdistributionen vorinstalliert). Gegebenenfalls muss auch das "Encode"-Paket z.B. über CPAN nachinstalliert werden.

use strict;
use utf8;
use Encode;

my $filename;
unless ($filename = $ARGV[0]) {
	$filename = 0;
}

my $restyle_file = "restyle.dat";
my $output_file = $filename.".changed";

my %restyle;
open(IN,$restyle_file);
	while(defined(my $i = decode("utf8", <IN>))) {
		my @entry = split /\t/, $i;
		$restyle{$entry[0]} = $entry[1];
	}
close(IN);

my $text;
open(IN,$filename);
	while(defined(my $i = decode("utf8", <IN>))) {
		if ($i =~ /<path id="([^\/]+)\/[0-9][0-9][0-9][0-9][0-9]" style="stroke:none; fill:/) {
			if ($restyle{$1}) {
				my $newfill = $restyle{$1};
				$i =~ s/(<path id="[^\/]+\/[0-9][0-9][0-9][0-9][0-9]" style="stroke:none; fill:)[^;]+;/$1$newfill/;
			}
		}
		$text = $text.$i;
	}
close(IN);

open(OUT,"> $output_file");
	print OUT encode("utf8",$text);
close(OUT);

Das Skript benötigt eine weitere Datei "restyle.dat", die eine Liste von Ländern enthält, die neueingefärbt werden sollen, sowie die zugehörige Farbe, beides getrennt mit einem Tabulator. Farben können mit Namen angeben werden (siehe diese Liste) oder in der gängigen Hexadezimaldarstellung mit vorangestelltem Doppelkreuz (#).Jedes Land/Farbe-Paar muss in einer eigene Zeile stehen. Die Ländernamen können im SVG gefunden werden, sie stehen jeweils im ersten Teil des id-Attributs eines Pathelements ggf. einfach die Suchfunktion einsetzen.

Beispiel (\t steht für einen Tabulatorabstand):

California_Free_State\t#0000FF
Neuseeland-Aotearoa\tred

Der Skriptaufruf erfolgt mit:

perl skriptname.pl Weltkarte.svg

Anschließend sollte die Weltkarte entsprechend restyle.dat neueingefärbt sein.

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell00:12, 18. Apr. 2012Vorschaubild der Version vom 00:12, 18. Apr. 20122.500 × 1.268 (2,01 MB)Loki (Diskussion | Beiträge){{Karteninfo |LIZENZ=[http://creativecommons.org/licenses/by-nc/3.0/ Creative Commons Attribution-Noncommercial Unported 3.0] |AUSSCHNITT=180° westl. Laenge, 180° oestl. Laenge, 90° suedl. Breite, 90° noerdl. Breite |PROJEKTION=Robinson-Projektion |QU

Keine Seiten verwenden diese Datei.

Metadaten