Klaus Löfflad schrieb:
Moin. Ich möchte etwas erstellen wie ein Strassenatlas jedoch mit einem anderen Focus. Einen Familienatlas von versch. Städten und Gegenden, idealerweise ganz D. In Form eines Atlanten mit Verweisen auf die Kartennummer an den Rändern.
Primär geht es mir erstmal aus Interesse darum, wie man einen Atlas automatisiert herstellt. Mit Index, Seitennummern usw. Inhalt der Karte regelt dann ein Renderer.
Hallo Klaus, man kann natürlich aus den Originaldaten eigene Karten rendern. Eine Alternative ist: http://openstreetmap.gryph.de/bigmap.cgi Auf der Webseite kannst du den gewünschten Ausschnitt konfigurieren. Du erhälst per Download ein Script. Wenn man das Script lokal ausführt, dann werden die Kacheln des gewünschten Bereiches herunter geladen und zu einem großen Bild zusammen "geklebt". Das Script kann man für andere Städte auch manuell (im Quelltext) anpassen. Man braucht nicht immer über die "gewöhnungsbedürftige" Seite gehen. Beispiele: Lemgo - 8x6 tiles (2048x1536 px) at zoom 16, aspect 1.3:1 Osmarender http://openstreetmap.gryph.de/bigmap.cgi?xmin=34385&xmax=34392&ymin=21635&ym... Lemgo - 16x12 tiles (4096x3072 px) at zoom 17, aspect 1.3:1 http://openstreetmap.gryph.de/bigmap.cgi?xmin=68770&xmax=68785&ymin=43270&ym... der zweite Link generiert folgendes Perlscipt: <perl> #!/usr/bin/perl # generated from http://openstreetmap.gryph.de/bigmap.cgi/ # permalink for this map: http://openstreetmap.gryph.de/bigmap.cgi?xmin=68770&xmax=68785&ymin=43270&ym... # use strict; use LWP; use GD; my $img = GD::Image->new(4096, 3072, 1); my $white = $img->colorAllocate(248,248,248); $img->filledRectangle(0,0,4096,3072,$white); my $ua = LWP::UserAgent->new(); $ua->env_proxy; for (my $x=0;$x<16;$x++) { for (my $y=0;$y<12;$y++) { my $url = sprintf("http://tile.openstreetmap.org/mapnik/17/%d/%d.png", $x+68770,$y+43270); print STDERR "$url\n"; my $resp = $ua->get($url); die $resp->status_line unless $resp->is_success; my $tile = GD::Image->new($resp->content); next if ($tile->width == 1); $img->copy($tile, $x*256,$y*256,0,0,256,256); } } binmode STDOUT; print $img->png(); </perl> Nach Download des Scripts ruft man es auf mit: $ perl mkmap.pl > mymap.png Auf der nächsten Ebene kann man dann mehrere solche Scripte ablegen und aus einem Batchfile aufrufen. Damit kann man dann alle Karten des Atlas aktualisieren. -- Frank