Inder
Geowizard
Ich habe beim automatischen Durchlauf gerade einen Fehler gesehen:
Bad name after Micro' at (eval 133) line 97.
Es ist ein Fehler bei der Evaluation von sizeandtypematrix() aufgetreten:
Undefined subroutine &main::sizeandtypematrix called at (eval 141) line 1.
index map map_osm statString found where operator expected at (eval 278) line 9
7, near "'Geocaching HQ' '
);
my(@clist) = ('"
(Might be a runaway multi-line '' string starting on line 93)
(Missing operator before '
);
my(@clist) = ('?)
Es ist ein Fehler bei der Evaluation von
# Type und Size Matrix
# Version 0.90 vom 25.11.2010 2mj
# Version 1.00 vom 30.09.2011 2mj (redesign)
# Version 1.01 vom 02.10.2011 2mj (info unknown cachetypes)
# Version 1.10 vom 03.10.2011 2mj (standard: ignore empty cachetypes)
# Version 1.11 vom 15.08.2014 hsca (add new cachetypes)
# Quelle: typestat.incl
sub StatTypeTrans {
my($type) = @_;
my(%imapping) = ('Traditional Cache' => 'traditional.gif',
'Multi-cache' => 'multi.gif',
'Virtual Cache' => 'virtual.gif',
'Letterbox Hybrid' => 'letterbox.gif',
'Event Cache' => 'event.gif',
'Unknown Cache' => 'mystery.gif',
'Webcam Cache' => 'webcam.gif',
'Locationless Cache' => 'locationless.gif',
'Earthcache' => 'earth.gif',
'Wherigo Cache' => 'wherigo.gif',
'Cache In Trash Out Event' => 'cito.gif',
'Mega-Event Cache' => 'mega.gif',
'Project APE Cache' => 'ape.gif',
'Lost and Found Event Cache' => 'lfevent.gif',
'GPS Adventures Exhibit' => 'maze.gif',
'Giga-Event Cache' => 'giga.gif',
'Geocaching Block Party' => 'block.gif',
'Groundspeak Lost and Found Celebration' => 'hqlfevent.gif',
'Geocaching HQ' => 'hq.gif'
);
my(%emapping) = ('Traditional Cache' => '2.gif',
'Multi-cache' => '3.gif',
'Virtual Cache' => '4.gif',
'Letterbox Hybrid' => '5.gif',
'Event Cache' => '6.gif',
'Unknown Cache' => '8.gif',
'Webcam Cache' => '11.gif',
'Locationless Cache' => '12.gif',
'Earthcache' => 'earthcache.gif',
'Wherigo Cache' => '1858.gif',
'Cache In Trash Out Event' => '13.gif',
'Mega-Event Cache' => 'mega.gif',
'Project APE Cache' => '7.gif',
'Lost and Found Event Cache' => '3653.gif',
'GPS Adventures Exhibit' => '1304.gif',
'Giga-Event Cache' => '7005.gif',
'Geocaching Block Party' => '4738.gif',
'Groundspeak Lost and Found Celebration' => '3774.gif',
'Geocaching HQ' => '3773.gif'
);
if ($StatGcProfile) {
return("http://www.geocaching.com/images/WptTypes/" . $emapping{$type});
} else {
return("pics/" . $imapping{$type});
}
}
# Quelle: sizestat.incl
sub StatContainerTrans {
my($container) = @_;
my(%mapping) = (
Micro => 'micro.gif',
Small => 'small.gif',
Regular => 'regular.gif',
Large => 'large.gif',
Virtual => 'virtual.gif',
'Not chosen' => 'not_chosen.gif',
Other => 'other.gif');
$container = $mapping{$container};
if ($StatGcProfile) {
return("http://www.geocaching.com/images/icons/container/" . $container);
} else {
$container = "virtual_container.gif" if ($container eq "virtual.gif");
return("pics/" . $container);
}
}
sub sizeandtypematrix {
my $ignoreemptycachetypes = 1; # 0 = no, 1 = yes
my(@tlist) = ('Traditional Cache', 'Multi-cache',
'Unknown Cache', 'Letterbox Hybrid',
'Wherigo Cache', 'Earthcache',
'Webcam Cache', 'Virtual Cache',
'Event Cache', 'Mega-Event Cache',
'Locationless (Reverse) Cache', 'Cache In Trash Out Event',
'Project APE Cache', 'Lost and Found Event Cache',
'GPS Adventures Exhibit', 'Giga-Event Cache',
'Geocaching Block Party', 'Groundspeak Lost and Found Cele
bration' ,
'Geocaching HQ' '
);
my(@clist) = ('Micro', 'Small', 'Regular', 'Large', 'Other', 'Not chosen', 'Vi
rtual');
my(%cvals,%cnvals,%tvals,%ctvals);
my($cmax,$tmax,$ctmax);
my($text,$tmptext,$x,$y,$xyz);
my $sum = scalar(keys(%found));
foreach (keys(%found)) {
$x = $found{$_}->{'Container'};
$y = $found{$_}->{'Type'};
if (grep {$_ eq $y} @tlist) {
$cvals{"$x"}++;
} else {
$cnvals{"$y"}++;
}
$tvals{"$y"}++;
$ctvals{"$x,$y"}++;
}
foreach (keys(%cvals)) {
$cmax = $_ if ($cvals{$cmax} < $cvals{$_});
}
foreach (keys(%tvals)) {
$tmax = $_ if ($tvals{$tmax} < $tvals{$_});
}
foreach (keys(%ctvals)) {
$ctmax = $_ if ($ctvals{$ctmax} < $ctvals{$_});
}
my @cvals_values = values(%cvals);
my $cmedian = median(\@cvals_values);
my @tvals_values = values(%tvals);
my $tmedian = median(\@tvals_values);
my @ctvals_values = values(%ctvals);
my $ctmedian = median(\@ctvals_values);
$text = "";
foreach my $t ((@tlist)) {
$tmptext = "\n <tr>";
$tmptext .= "\n <td style='background:#DCDCDC;text-align:center;font-weight
:bold'><img src='" . StatTypeTrans($t) . "' height='15px' title='$t' alt='$t'></
td>";
foreach my $c ((@clist)) {
if (($xyz = $ctvals{"$c,$t"}) != 0) {
$tmptext .= "\n <td style='text-align:right;background:".statcolorampel
($ctvals{"$c,$t"},0,$ctvals{$ctmax},$ctmedian)."'>";
$tmptext .= "$xyz";
$tmptext .= "</td>";
} else {
$tmptext .= "\n <td style='background:#DCDCDC;text-align:right'> <
/td>";
}
}
$xyz = $tvals{"$t"};
if ($xyz) {
$tmptext .= "\n <td style='text-align:right;background:".(&statcolorampel
($tvals{$t},0,$tvals{$tmax},$tmedian))."'>";
$tmptext .= "$xyz (" . sprintf("%1.1f",$xyz/$sum*100) . "%)";
$tmptext .= "</td>";
}
else {
$tmptext .= "\n <td style='background:#DCDCDC;text-align:right'>0 (0,0%)<
/td>";
}
$tmptext .= "\n </tr>";
if (($xyz != 0) || ($ignoreemptycachetypes == 0)) {
$text .= $tmptext;
}
}
$text .= "\n <tr>";
$text .= "\n <td style='background:#DCDCDC;text-align:center;font-weight:bold
;'>Σ-Behälter</td>";
my $sumB = 0;
foreach my $c ((@clist)) {
$xyz = $cvals{"$c"};
if ($xyz) {
$text .= "\n <td style='text-align:right;background:".(
&statcolorampel($cvals{$c},0,$cvals{$cmax},$cmedian))."'>";
$text .= "$xyz (" . sprintf("%1.1f",$xyz/$sum*100) . "%)";
$text .= "</td>";
$sumB += $xyz;
}
else {
$text .= "\n <td style='background:#DCDCDC;text-align:right;'>0 (0,0%)</t
d>";
}
}
$text .= "\n <td style='background:#DCDCDC;text-align:right;font-weight:bold;
'>" . $sumB . " (" . sprintf("%1.1f",$sumB/$sum*100) . "%)</td>";
$text .= "\n </tr>";
# falls mal ein Cachetyp nicht in der Liste ist, z.B wenn ein neuer dazugekomm
en ist
while ( my ($k,$v) = each %cnvals ) {
$text .= "\n <tr>";
$text .= "\n <td colspan='9' style='background:#DCDCDC;text-align:left;font
-weight:normal;'>Unbekannter Cachetyp: " . $k . " (Anzahl: " . $v . ")</td>";
$text .= "\n </tr>";
}
return($text);
}
aufgetreten:
Bad name after Micro' at (eval 278) line 97.
Es ist ein Fehler bei der Evaluation von sizeandtypematrix() aufgetreten:
Undefined subroutine &main::sizeandtypematrix called at (eval 286) line 1.
Bad name after Micro' at (eval 133) line 97.
Es ist ein Fehler bei der Evaluation von sizeandtypematrix() aufgetreten:
Undefined subroutine &main::sizeandtypematrix called at (eval 141) line 1.
index map map_osm statString found where operator expected at (eval 278) line 9
7, near "'Geocaching HQ' '
);
my(@clist) = ('"
(Might be a runaway multi-line '' string starting on line 93)
(Missing operator before '
);
my(@clist) = ('?)
Es ist ein Fehler bei der Evaluation von
# Type und Size Matrix
# Version 0.90 vom 25.11.2010 2mj
# Version 1.00 vom 30.09.2011 2mj (redesign)
# Version 1.01 vom 02.10.2011 2mj (info unknown cachetypes)
# Version 1.10 vom 03.10.2011 2mj (standard: ignore empty cachetypes)
# Version 1.11 vom 15.08.2014 hsca (add new cachetypes)
# Quelle: typestat.incl
sub StatTypeTrans {
my($type) = @_;
my(%imapping) = ('Traditional Cache' => 'traditional.gif',
'Multi-cache' => 'multi.gif',
'Virtual Cache' => 'virtual.gif',
'Letterbox Hybrid' => 'letterbox.gif',
'Event Cache' => 'event.gif',
'Unknown Cache' => 'mystery.gif',
'Webcam Cache' => 'webcam.gif',
'Locationless Cache' => 'locationless.gif',
'Earthcache' => 'earth.gif',
'Wherigo Cache' => 'wherigo.gif',
'Cache In Trash Out Event' => 'cito.gif',
'Mega-Event Cache' => 'mega.gif',
'Project APE Cache' => 'ape.gif',
'Lost and Found Event Cache' => 'lfevent.gif',
'GPS Adventures Exhibit' => 'maze.gif',
'Giga-Event Cache' => 'giga.gif',
'Geocaching Block Party' => 'block.gif',
'Groundspeak Lost and Found Celebration' => 'hqlfevent.gif',
'Geocaching HQ' => 'hq.gif'
);
my(%emapping) = ('Traditional Cache' => '2.gif',
'Multi-cache' => '3.gif',
'Virtual Cache' => '4.gif',
'Letterbox Hybrid' => '5.gif',
'Event Cache' => '6.gif',
'Unknown Cache' => '8.gif',
'Webcam Cache' => '11.gif',
'Locationless Cache' => '12.gif',
'Earthcache' => 'earthcache.gif',
'Wherigo Cache' => '1858.gif',
'Cache In Trash Out Event' => '13.gif',
'Mega-Event Cache' => 'mega.gif',
'Project APE Cache' => '7.gif',
'Lost and Found Event Cache' => '3653.gif',
'GPS Adventures Exhibit' => '1304.gif',
'Giga-Event Cache' => '7005.gif',
'Geocaching Block Party' => '4738.gif',
'Groundspeak Lost and Found Celebration' => '3774.gif',
'Geocaching HQ' => '3773.gif'
);
if ($StatGcProfile) {
return("http://www.geocaching.com/images/WptTypes/" . $emapping{$type});
} else {
return("pics/" . $imapping{$type});
}
}
# Quelle: sizestat.incl
sub StatContainerTrans {
my($container) = @_;
my(%mapping) = (
Micro => 'micro.gif',
Small => 'small.gif',
Regular => 'regular.gif',
Large => 'large.gif',
Virtual => 'virtual.gif',
'Not chosen' => 'not_chosen.gif',
Other => 'other.gif');
$container = $mapping{$container};
if ($StatGcProfile) {
return("http://www.geocaching.com/images/icons/container/" . $container);
} else {
$container = "virtual_container.gif" if ($container eq "virtual.gif");
return("pics/" . $container);
}
}
sub sizeandtypematrix {
my $ignoreemptycachetypes = 1; # 0 = no, 1 = yes
my(@tlist) = ('Traditional Cache', 'Multi-cache',
'Unknown Cache', 'Letterbox Hybrid',
'Wherigo Cache', 'Earthcache',
'Webcam Cache', 'Virtual Cache',
'Event Cache', 'Mega-Event Cache',
'Locationless (Reverse) Cache', 'Cache In Trash Out Event',
'Project APE Cache', 'Lost and Found Event Cache',
'GPS Adventures Exhibit', 'Giga-Event Cache',
'Geocaching Block Party', 'Groundspeak Lost and Found Cele
bration' ,
'Geocaching HQ' '
);
my(@clist) = ('Micro', 'Small', 'Regular', 'Large', 'Other', 'Not chosen', 'Vi
rtual');
my(%cvals,%cnvals,%tvals,%ctvals);
my($cmax,$tmax,$ctmax);
my($text,$tmptext,$x,$y,$xyz);
my $sum = scalar(keys(%found));
foreach (keys(%found)) {
$x = $found{$_}->{'Container'};
$y = $found{$_}->{'Type'};
if (grep {$_ eq $y} @tlist) {
$cvals{"$x"}++;
} else {
$cnvals{"$y"}++;
}
$tvals{"$y"}++;
$ctvals{"$x,$y"}++;
}
foreach (keys(%cvals)) {
$cmax = $_ if ($cvals{$cmax} < $cvals{$_});
}
foreach (keys(%tvals)) {
$tmax = $_ if ($tvals{$tmax} < $tvals{$_});
}
foreach (keys(%ctvals)) {
$ctmax = $_ if ($ctvals{$ctmax} < $ctvals{$_});
}
my @cvals_values = values(%cvals);
my $cmedian = median(\@cvals_values);
my @tvals_values = values(%tvals);
my $tmedian = median(\@tvals_values);
my @ctvals_values = values(%ctvals);
my $ctmedian = median(\@ctvals_values);
$text = "";
foreach my $t ((@tlist)) {
$tmptext = "\n <tr>";
$tmptext .= "\n <td style='background:#DCDCDC;text-align:center;font-weight
:bold'><img src='" . StatTypeTrans($t) . "' height='15px' title='$t' alt='$t'></
td>";
foreach my $c ((@clist)) {
if (($xyz = $ctvals{"$c,$t"}) != 0) {
$tmptext .= "\n <td style='text-align:right;background:".statcolorampel
($ctvals{"$c,$t"},0,$ctvals{$ctmax},$ctmedian)."'>";
$tmptext .= "$xyz";
$tmptext .= "</td>";
} else {
$tmptext .= "\n <td style='background:#DCDCDC;text-align:right'> <
/td>";
}
}
$xyz = $tvals{"$t"};
if ($xyz) {
$tmptext .= "\n <td style='text-align:right;background:".(&statcolorampel
($tvals{$t},0,$tvals{$tmax},$tmedian))."'>";
$tmptext .= "$xyz (" . sprintf("%1.1f",$xyz/$sum*100) . "%)";
$tmptext .= "</td>";
}
else {
$tmptext .= "\n <td style='background:#DCDCDC;text-align:right'>0 (0,0%)<
/td>";
}
$tmptext .= "\n </tr>";
if (($xyz != 0) || ($ignoreemptycachetypes == 0)) {
$text .= $tmptext;
}
}
$text .= "\n <tr>";
$text .= "\n <td style='background:#DCDCDC;text-align:center;font-weight:bold
;'>Σ-Behälter</td>";
my $sumB = 0;
foreach my $c ((@clist)) {
$xyz = $cvals{"$c"};
if ($xyz) {
$text .= "\n <td style='text-align:right;background:".(
&statcolorampel($cvals{$c},0,$cvals{$cmax},$cmedian))."'>";
$text .= "$xyz (" . sprintf("%1.1f",$xyz/$sum*100) . "%)";
$text .= "</td>";
$sumB += $xyz;
}
else {
$text .= "\n <td style='background:#DCDCDC;text-align:right;'>0 (0,0%)</t
d>";
}
}
$text .= "\n <td style='background:#DCDCDC;text-align:right;font-weight:bold;
'>" . $sumB . " (" . sprintf("%1.1f",$sumB/$sum*100) . "%)</td>";
$text .= "\n </tr>";
# falls mal ein Cachetyp nicht in der Liste ist, z.B wenn ein neuer dazugekomm
en ist
while ( my ($k,$v) = each %cnvals ) {
$text .= "\n <tr>";
$text .= "\n <td colspan='9' style='background:#DCDCDC;text-align:left;font
-weight:normal;'>Unbekannter Cachetyp: " . $k . " (Anzahl: " . $v . ")</td>";
$text .= "\n </tr>";
}
return($text);
}
aufgetreten:
Bad name after Micro' at (eval 278) line 97.
Es ist ein Fehler bei der Evaluation von sizeandtypematrix() aufgetreten:
Undefined subroutine &main::sizeandtypematrix called at (eval 286) line 1.