fogg schrieb:Hallo,
so ein Skript kann ich dir in 5 Minuten liefern. Das Problem ist, dass viele Caches die Bundesländer nicht eingetragen haben und damit die Statistik doch recht unvollständig wird. Ich glaube, bei mir waren es etwa 1/3 der deutschen Caches.
Man könnte natürlich anhand der Startkoordinaten eine Zuordnung machen. Aber soweit ich weiß, gibt es da nix automatisches (oder weiß jemand was?). Bei GSAK wird aber wohl daran gearbeitet.
- Fogg
sub lookupCountryState
{
my $lat = shift; die unless (defined $lat);
my $lon = shift; die unless (defined $lon);
my $url = sprintf( "http://ws.geonames.org/countrySubdivision?lat=%f&lng=%f", $lat, $lon );
my $ua = LWP::UserAgent->new();
my $response = $ua->get( $url );
my $country = "";
my $state = "";
return ( $country,$state) unless $response->is_success;
my $content = $response->content;
if( $content =~ m%<countryCode>(.*)</countryCode>%gsi ) {
$country = $1;
}
if( $content =~ m%<code type="ISO3166-2">(.*)</code>%gsi ) {
$state = $1;
}
return ($country,$state);
}
flopp schrieb:Außerdem habe ich auch noch das "demap.incl" Plugin so erweitert, dass eine Deutschlandkarte erzeugt und hochgeladen wird, in der die Bundesländer je nach Fundzahl eingefärbt sind. Ein Beispiel ist hier zu sehen.
Das Plugin ist aber noch nicht in einem veröffentlichungswürdigen Zustand![]()
flopp schrieb:Ich habe grade ein Perl-Skript fertiggestellt, das die Bundesländer aller gefundenen deutschen Caches nachträgt (mit Hilfe der Cachekoordinaten und einem Webservice von "geonames.org"). Das ganze ist ein fieser Hack auf Basis von Geolog-Funktionen, scheint aber zu funktionieren.
Die Hauptfunktion fragt den Webservice "http://ws.geonames.org/countrySubdivision" ab und ermittelt so Country und State für beliebige Koordinaten (Dezimalformat):
Code:sub lookupCountryState { my $lat = shift; die unless (defined $lat); my $lon = shift; die unless (defined $lon); my $url = sprintf( "http://ws.geonames.org/countrySubdivision?lat=%f&lng=%f", $lat, $lon ); my $ua = LWP::UserAgent->new(); my $response = $ua->get( $url ); my $country = ""; my $state = ""; return ( $country,$state) unless $response->is_success; my $content = $response->content; if( $content =~ m%<countryCode>(.*)</countryCode>%gsi ) { $country = $1; } if( $content =~ m%<code type="ISO3166-2">(.*)</code>%gsi ) { $state = $1; } return ($country,$state); }
Vielleicht kann man diese Funktionalität direkt in Geolog einbauen?
Grüße
Flopp
P.S. Perl ist doch nicht so schlecht, wie ich zuerst dachte :/
flopp schrieb:@AndiOlli:
Mit den GSAK-Polygonen für die Landkreise und einer Funktion, die berechnet, in welchem Polygon eine gegebene Koordinate liegt, sollte das kein allzu großes Problem sein. Siehe auch hier.
flopp schrieb:@Fogg:
Die Funktion "lookupCountryState" darf natürlich gerne verbessert/erweitert/... und in Geolog eingebaut werden![]()
<tr>
<td width="100%" align="center">
##include(statistics/statestat.incl)##
</td>
</tr>
<tr>
<td width="100%" align="center">
##include(statistics/demap.incl)##
</td>
</tr>
AndiOlli schrieb:Danke für die neue Statisik, aber bei mir sieht jetzt der Teil mit der Deutschlandkarte komisch aus
. . .
Habe ich da was falsch gemacht?
fogg schrieb:Den Code über die die einzelnen Statistikteile zu verteilen macht es ja schön modular und erweiterbar, aber man muss dann aufpassen, dass man Funktionen nicht überdefiniert
ps: . Also, das korrigierte Modul statestat.incl kann man jetzt auch vor demap.incl benutzen.
Erzeugung der HTML-Seiten im Hauptverzeichnis ...
... contact index map statEs ist ein Fehler bei der Evaluation von
...
aufgetreten:
Can't call method "get" on an undefined value at (eval 79) line 10.
Beamer schrieb:Ich hab noch kein Erfolg mit dem Script gehabt.
Hab es in die stat.tmp hinter demap eingetragen.Code:Erzeugung der HTML-Seiten im Hauptverzeichnis ... ... contact index map statEs ist ein Fehler bei der Evaluation von ... aufgetreten: Can't call method "get" on an undefined value at (eval 79) line 10.
Was mach ich den noch falsch ?
huzzel schrieb:Wie bekommt man raus, für welchen Cacheerzeugt wurde?Code:Keine Zuordnung
Ich habe es im Batchmodus laufen (-b), ich denke mal, das deswegen nix kam.fogg schrieb:Bei der neuesten Version wird das bei der Erzeugung der Statistikseite ausgegeben.
Da stehen leider nicht alle Caches drin (bei mir nur ca. 30 Stück).fogg schrieb:Ansonsten kann man sich auch die Datei statecache.tab anschauen.