Moins,
das Tool convert aus dem Programmpaket Imagemagick kann Grafik-Dateien laden, mit der -draw Option verunstalten und wieder speichern.
Bleibt die Aufgabe, die Parameter für den “-draw “line x1,y1 x2,y2””-Befehl zu bestimmen.
Dazu brauchen wir Höhe und Breite der Karte in Pixeln sowie die Länge von linkem und rechtem und die Breite von oberem und unterem Kartenrand. Und natürlich den gewünschten Rasterabstand.
Die Längengrade sind einfach: aus kleinster und größter Länge sowie dem gewünschten Raster bestimmen wir die zu zeichnenden Längengrade:
my $min = ceil ($MIN_LON / $GRID_LON);
my $max = floor ($MAX_LON / $GRID_LON);
for (my $i=$min; $i<=$max; $i++) {
my $lon = $i * $GRID_LON;
... Längengrad zeichnen ....
}
Der so bestimmte Längengrad wird linear auf die Pixelkoordinaten abgebildet:
my $x = floor (($lon - $MIN_LON) / ($MAX_LON - $MIN_LON) * $WIDTH);
Und dann der Zeichenbefehl erzeugt: “line $x,0 $x,$HEIGHT”.
Voila.
Bei den Breitengraden gibt es zwei Unterschiede: zum einen wenden wir die Merkator-Transformation auf die geographische Breite an:
my $MIN_LAT_M = mercator($MIN_LAT);
my $MAX_LAT_M = mercator($MAX_LAT);
[…]
for (my $i=$min; $i<=$max; $i++) {
my $lat_m = mercator ($i * $GRID_LAT);
Zum anderen läuft die Breite von unten nach oben, die Pixel-Y-Koordinaten aber von oben nach unten, daher ist der erste Klammerausdruck umgestellt:
my $y = floor (($MAX_LAT_M - $lat_m) / ($MAX_LAT_M - $MIN_LAT_M) * $HEIGHT);
Das alles fassen wir zu einem hochaufwendigen Skript zusammen, wobei wir uns für die Merkator-Breitentransformation bei Wikipedia bedienen können:
sub mercator {
my ($lat) = @_;
my $PI = 3.1415926535;
my $lat_rad = $lat * $PI / 180.0;
my $lat_mercator = log(tan($PI/4 + $lat_rad/2));
return $lat_mercator;
}
Zum Test ziehen wir die 6 Kacheln “http://a.tile.openstreetmap.org/2/{1..2}/{0..2}.png” und kleben diese zu einer 512×768-Pixel-Graphik zusammen:

Die Koordinaten der linken unteren Ecke kann man hier zu MIN_LON=-90°, MIN_LAT=-66.51326° bestimmen, die der rechten oberen Ecke analog zu MAX_LON=+90°, MAX_LAT=85.051129°.
Auf diese Graphik wenden wir das Skript an und erhalten dieses Ergebnis:

Gruß Wolf
PS: Umbau des Skriptes in ein Tool, also ziehen der Parameter von der Kommandozeile und idealerweise automatische Bestimmung der Größe der Grafik, oder Einbau in das Bigmap-Tool möge ein anderer übernehmen.