x

Bigmap Perl Fehler


Geschrieben von frank474 (Gast) am 18. Februar 2013 19:33:09: [flux]

Hallo,

ich bekomme den unteren Fehler in Zeile 32: next if ($tile->width == 1);

perl mkmap.pl > mymap.png
http://tah.openstreetmap.org/Tiles/tile … 1/5424.png... 200 OK
Can't call method "width" on an undefined value at mkmap.pl line 32.

Da ich kein Perl kann, komme ich nicht weiter. Wer kann mir helfen ?

#!/usr/bin/perl
#␣generated␣from␣http://openstreetmap.gryph.de/bigmap.cgi/
#␣permalink␣for␣this␣map:␣http://openstreetmap.gryph.de/bigmap.cgi?xmin=8561&xmax=8564&ymin=5424&ymax=5426&zoom=14&scale=256&baseurl=http%3A%2F%2Ftah.openstreetmap.org%2FTiles%2Ftile%2F!z%2F!x%2F!y.png
#
use␣strict;
use␣LWP;
use␣GD;
my␣$img␣=␣GD::Image->new(1024,␣768,␣1);
my␣$white␣=␣$img->colorAllocate(248,248,248);
$img->filledRectangle(0,0,1024,768,$white);
my␣$ua␣=␣LWP::UserAgent->new();
$ua->env_proxy;
for␣(my␣$x=0;$x<4;$x++)
{
for␣(my␣$y=0;$y<3;$y++)
{
my␣$xx␣=␣$x␣+␣8561;
my␣$yy␣=␣$y␣+␣5424;
foreach␣my␣$base(split(/\|/,␣"http://tah.openstreetmap.org/Tiles/tile/14/!x/!y.png"))
{
my␣$url␣=␣$base;
$url␣=~␣s/!x/$xx/g;
$url␣=~␣s/!y/$yy/g;
print␣STDERR␣"$url...␣";
my␣$resp␣=␣$ua->get($url);
print␣STDERR␣$resp->status_line;
print␣STDERR␣"\n";
next␣unless␣$resp->is_success;
my␣$tile␣=␣GD::Image->new($resp->content);
next␣if␣($tile->width␣==␣1);
if␣($base␣=~␣/seamark/)␣{
my␣$black=$tile->colorClosest(0,0,0);
$tile->transparent($black);
}
$img->copy($tile,␣$x*256,$y*256,0,0,256,256);
}
}
}
binmode␣STDOUT;
print␣$img->png();

OS: Ubuntu 12.04.2 LTS
Kernel: Linux 3.6.5

Frank


Antworten: