durch Zufall bin ich auf euer tolles Projekt gestossen und frage mich, ob es irgendwie möglich ist, eine digitale Karte einer Großstadt z.B. im Maßstab 1:10.000 zu erstellen, ohne jeden Kartenausschnitt einzeln mit einem Screenshot zu speichern und anschließend in mühsamer Kleinarbeit zusammenzufügen.
Benötige diese Karte zur digitalen Bearbeitung für meine Bachelorarbeit. Zusatzdaten und Informationen die in eurem Kartenmaterial noch nicht vorhanden sind, werde ich natürlich nach Beendigung der Arbeit einpflegen.
Ich versuche mich erstmals an BigMap, komme aber immer nur bis zum Fehler
“Can’t call method “colorAllocate” on an undefined value at mkmap.pl line 8.”
Was mache ich falsch? Wie geht es richtig?
Gruß Michael
PS: hier mein Script:
#!/usr/bin/perl
use strict;
use LWP;
use GD;
my $img = GD::Image->new(54016, 46336, 1);
my $white = $img->colorAllocate(248,248,248);
$img->filledRectangle(0,0,54016,46336,$white);
my $ua = LWP::UserAgent->new();
$ua->env_proxy;
for (my $x=0;$x<211;$x++)
{
for (my $y=0;$y<181;$y++)
{
my $url = sprintf(“http://tah.openstreetmap.org/Tiles/tile/16/%d/%d.png”,
$x+37988,$y+23468);
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, $x256,$y256,0,0,256,256);
}
}
binmode STDOUT;
print $img->png();
Hallo Spartaner,
sorry da bin ich ziemlich aufgeschmissen, bei mir lief alles sofort nach den Installation von Perl… (GsD )
Aber es gibt hier bestimmt einige Leute die dir weiterhelfen können.
Georg
Dein “Image” braucht ca. 4 Bytes pro Pixel, das sind in Deinem Scipt 54016 x 46336 x 4 = 10011541504, also ca. 10GB!
Da Dein Rechner nicht soviel Speicher hat, geht “new” schief und liefert “undef” zurück, daher die Fehlermeldung.