DE:PDF-Export-zusammengeklebte Poster

From OpenStreetMap Wiki
Jump to navigation Jump to search

Hallo!

Nur damit der Code nicht verstaubt: Im folgenden Mini-Perl-Script werden nach Eingabe von Blattanzahl in W-O- und in N-S-Richtung, sowie einer äußeren Bounding-Box und dem gewünschten Maßstab im Wiki ablegbare Links auf PDFs erzeugt, die man sich dann alle ausdrucken und zusammenkleben kann.

Der so erstellte Stadtplan von Essen macht schon viel her und ist sicherlich auch ein Blickfang für allerlei Veranstaltungen.

Achtung: Es gibt keine Fehlerbehandlung oder Plausibilisierung (insbesondere bspw. nicht, ob der Maßstab noch angenommen wird.

Ein Beispiel (Essen) kann man auf meiner Wiki-User-Seite (http://wiki.openstreetmap.org/index.php/User:Rotbarsch) anschauen.



> cat show.pl
my ($nrof_sheets_we, $nrof_sheets_sn, $xw, $ys, $xe, $yn, $scale,  
$overlap_percentage) = @ARGV;
$x_total_width=$xe-$xw;
$x_sheet_width=$x_total_width/$nrof_sheets_we;
$y_total_width=$yn-$ys;
$y_sheet_width=$y_total_width/$nrof_sheets_sn;
if ($overlap_percentage == 0){$overlap_percentage=5} # Default
$y_overlap=$y_sheet_width*$overlap_percentage/100;
$x_overlap=$x_sheet_width*$overlap_percentage/100;
for ($x=1;$x<=$nrof_sheets_we;$x++) {
    for ($y=1;$y<=$nrof_sheets_sn;$y++) {
         $cur_xw=$xw+(($x-1)*$x_sheet_width);
         $cur_xe=$xw+($x    *$x_sheet_width);
         $cur_ys=$ys+(($y-1)*$y_sheet_width);
         $cur_yn=$ys+($y    *$y_sheet_width);
         printf ("*  
[http://tile.openstreetmap.org/cgi-bin/export?bbox=%.3f,%3.3f,%3.3f,%3.3f&scale=%s&format=pdf
  
x%dy%d]\n",
                 $cur_xw-$x_overlap, $cur_ys-$y_overlap,  
$cur_xe+$x_overlap, $cur_yn+$y_overlap, $scale, $x, $y);
    }
}

P.S.: Das die äußeren Sheets auch einen Kleberand bekommen ist gewollt, da sie sonst vom Druckertreiber auf einen anderen Maßstab aufgezogen würden.

Und hier das ganze als Online-Version:

http://alex.zeitform.de/cgi-bin/map.pl