Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Projekt: eigene Datenbank aus PQs

Windows-Tool zur Cacheverwaltung und formatierten Druckausgabe.

Moderator: Schnueffler

Benutzeravatar
Schnueffler
Geoadmin
Beiträge: 9652
Registriert: Mi 7. Jul 2004, 08:08
Ingress: Enlightened
Wohnort: Rheinstetten
Kontaktdaten:

Re: Projekt: eigene Datenbank aus PQs

Beitrag von Schnueffler » Do 6. Aug 2009, 10:36

taxiinsel hat geschrieben:Besteht hier noch Bedarf? Aus meiner Sicht schon, besonders da die Daten von Patrick nun nicht mehr zur Verfügung stehen.
Mach es einfach und forder andere User nicht dazu auf, die Terms of Use zu verletzten. Lass Du nur Deinen eigenen Account sperren. Denn Groundspeak liest entwederhier selbe rmit, oder es wird Cacher geben, die Dich aus Neid verpetzen werden. Das ist so sicher, wie das Amen in der Kirche. Und dann solltest nur Du alleine nach Seattle kriechen müssen, und bitten, dass Dein Account wieder freigeschaltet wird.
Bild
Schnueffler's Blog
- Aktuelles aus der Cacherszene

Werbung:
taxiinsel
Geocacher
Beiträge: 24
Registriert: Mi 5. Aug 2009, 11:47

Re: Projekt: eigene Datenbank aus PQs

Beitrag von taxiinsel » Fr 7. Aug 2009, 12:37

Schnueffler hat geschrieben:Mach es einfach und forder andere User nicht dazu auf, die Terms of Use zu verletzten.
Erinnerst du dich? DU hattest ursprünglich dazu aufgerufen. Es war DEINE Idee, die PQs von verschiedenen Premium-Members zu sammeln. Ich greife nur auf, was du vorgeschlagen hast. :p
Schnueffler hat geschrieben: Und jetzt möchte ich hier keine weiteren, sinnlosen Diskussionen mehr über Guidelines o.ä. hören. Geht dazu auf die Wiese und lasst uns hier konstruktiv zum Thema diskutieren

SkateScout
Geonewbie
Beiträge: 8
Registriert: Mo 10. Sep 2007, 14:01

Re: Projekt: eigene Datenbank aus PQs

Beitrag von SkateScout » Mo 10. Aug 2009, 21:31

Hallo,

ich kann evtl hier ein wenig Helfen. Ich habe ein Java Programm das in der Lage ist Automatisch alle Deutschen Caches zu laden. Leider bin ich Gui Teschnich nicht so fit.
Funktional kann es:
+ Zugriff GPX auf beliebige Daten
+ Zugriff über Json auf GoogleMap API
+ CacheDetails laden und Parsen
+ GPX Datein schreiben
+ Garmin IMG Dateien erzeugen

Hat jemand Lust hier mitzuprogramieren ?

taxiinsel
Geocacher
Beiträge: 24
Registriert: Mi 5. Aug 2009, 11:47

Re: Projekt: eigene Datenbank aus PQs

Beitrag von taxiinsel » Mo 10. Aug 2009, 21:51

SkateScout hat geschrieben:Hallo,

ich kann evtl hier ein wenig Helfen. Ich habe ein Java Programm das in der Lage ist Automatisch alle Deutschen Caches zu laden. Leider bin ich Gui Teschnich nicht so fit.
Funktional kann es:
+ Zugriff GPX auf beliebige Daten
Willkommen an Bord, SkateScout!

Das erste Problem ist gerade eine Datenbank aller deutschen Caches zu erhalten, evtl. beschränkt auf "Traditionals". Um die Datenbank zu erstellen sehe ich nur eine Möglichkeit, nämlich mittels PQs die Daten zu sammeln. Siehst du Alternativen?

SkateScout
Geonewbie
Beiträge: 8
Registriert: Mo 10. Sep 2007, 14:01

Re: Projekt: eigene Datenbank aus PQs

Beitrag von SkateScout » Mo 10. Aug 2009, 22:05

Hallo,

es kommt ohne PQ aus :-) das ist ein Enormer Vorteil.

Benutzeravatar
DunkleAura
Geowizard
Beiträge: 1848
Registriert: So 9. Sep 2007, 11:10
Kontaktdaten:

Re: Projekt: eigene Datenbank aus PQs

Beitrag von DunkleAura » Mo 10. Aug 2009, 22:18

SkateScout hat geschrieben:es kommt ohne PQ aus :-) das ist ein Enormer Vorteil.
das heisst also auf gut deutsch spidern…
Use http://coord.ch/ the Multi Waypoint Redirector
Bild Bild

SkateScout
Geonewbie
Beiträge: 8
Registriert: Mo 10. Sep 2007, 14:01

Re: Projekt: eigene Datenbank aus PQs

Beitrag von SkateScout » Mo 10. Aug 2009, 23:06

Hi,

nicht ganz nur zur hälfte. Es gibt noch andere Arten wie man auf die Daten als User regulär zugreifen kann.

ernte58
Geonewbie
Beiträge: 3
Registriert: So 8. Nov 2009, 19:00

Re: Projekt: eigene Datenbank aus PQs

Beitrag von ernte58 » So 8. Nov 2009, 20:58

Da die GCGermany.db (http://geocaching.bplaced.net/gc/) wird scheinbar seit dem 06.10.09 nicht mehr aktualisiert wird, habe ich mir eine Weg ausgedacht, der auf dem bisherigen Datenbestand aufsetzt und diesen mit PQs ergänzt.

PQs und GCGermany sind in einem unterschiedlichen Format. Mein Ziel ist es das Ganze in GSAK aktuell zu halten. Deshalb musste die GCGermany ins GPX Format konvertiert werden. Versuche dies mir GPSBabel oder MGM zu tun, schlugen alle fehl. Die vorgenannten Tools erzeugten zwar eine GPX Datei, aber nach dem Laden in GASK haben einige Attribute gefehlt.

Nebenbei wollte ich meine eigenen Funde und archivierte Caches zuvor aus der GCGermany entfernen. Die eigenen Funde stehen in einer einfachen Text Datei, wobei das 'GC' am Anfang entfernt wurde.

Auszug aus meiner EigeneFunde.txt:
1NDBV
11F5G
1QW3P
1CPE6

Archivierte Caches habe ich von http://shell.franken.de/~ibm/cslist.php heruntergeladen.
Auch hier habe ich wieder wieder das 'GC' am Anfang entfernt. Das Ganze habe ich mit einer *.bat erledigt:
C:\"Program Files"\curl\curl http://shell.franken.de/~ibm/cslist.php > gc_arch.tmp
C:\"Program Files"\GnuWin32\bin\sed -f Format_GC_Arch.sed gc_arch.tmp > gc_arch.txt
Die Steuerdatei für das Tool sed sieht so aus:
s/A;GC//g
s/D;GC//g
Auszug aus meiner gc_arch.txt:
WQE3
PPVD
TQA6
P770

So, was machen wir nun mit den ganzen Daten? Die GCGermany hat über 100.000 Einträge, die Liste der archivierten Caches hat ca. 35.000 Einträge und die eigenen Funde werden auch immer mehr. Ausserdem soll noch eine GPX Datei für GSAK dabei herauskommen. Das ganze "schreit" nach einer Datenbank Anwendung.

Als Datenbank habe ich mich für MySQL entschieden. Nachfolgend mein Weg als Datenbank "rookie" (die Profis können das bestimmt viel besser).
Der Mysql Query Browser hat mir dabei gute Dienste geleistet.
Es folgen SQL Statements, die man im MySQL Query Browser ausführen kann.
Zunächst habe ich eine Datenbank mit Namen 'tradi' angegegt.

CREATE DATABASE `tradi` /*!40100 DEFAULT CHARACTER SET latin1 */;
Stört Euch nicht an dem Namen, ursprünglich war etwas Anderes geplant.

'tradi' hat folgende Tabellen:
DROP TABLE IF EXISTS `tradi`.`efunds`;
CREATE TABLE `tradi`.`efunds` (
`eFunds_ID` varchar(16) NOT NULL,
PRIMARY KEY (`eFunds_ID`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 ROW_FORMAT=FIXED;

DROP TABLE IF EXISTS `tradi`.`gc_arch`;
CREATE TABLE `tradi`.`gc_arch` (
`GC_ARCH_ID` varchar(16) NOT NULL,
PRIMARY KEY (`GC_ARCH_ID`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 ROW_FORMAT=FIXED;

DROP TABLE IF EXISTS `tradi`.`gc_db`;
CREATE TABLE `tradi`.`gc_db` (
`Nummer` varchar(16) NOT NULL,
`Name` varchar(256) NOT NULL,
`Jahr` varchar(16) NOT NULL,
`Monat` varchar(16) NOT NULL,
`Tag` varchar(16) NOT NULL,
`LAT` varchar(16) NOT NULL,
`LON` varchar(16) NOT NULL,
`Type` varchar(32) NOT NULL,
`Size` varchar(16) NOT NULL,
`GC_DB_ID` varchar(16) NOT NULL,
`OID` varchar(64) NOT NULL,
`S_Diff` varchar(4) NOT NULL,
`T_Diff` text NOT NULL,
PRIMARY KEY (`GC_DB_ID`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 ROW_FORMAT=FIXED;

Nachdem die Datenbank nun eingerichtet ist, wird sie gefüllt.
Eventuell müssen alte Inhalte gelöscht werden:
delete from eFunds;
delete from GC_DB;
delete from GC_ARCH;

bevor eingelesen wird:
LOAD DATA LOCAL
INFILE 'D:\\Garmin\\POI\\new\\EigeneFunde.txt'
REPLACE
INTO TABLE eFunds
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES
TERMINATED BY '\r\n';

LOAD DATA LOCAL
INFILE 'D:\\Garmin\\POI\\new\\GCGermany.db'
REPLACE
INTO TABLE gc_db
FIELDS
TERMINATED BY ' '
OPTIONALLY ENCLOSED BY '"';

LOAD DATA LOCAL
INFILE 'D:\\Garmin\\POI\\new\\gc_arch.txt'
REPLACE
INTO TABLE GC_ARCH
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES
TERMINATED BY '\r\n';

Scheinbar enthält die Liste der archivierten Caches etwas "Müll", den wir löschen mit:
delete from GC_ARCH where LENGTH (gc_arch.gc_arch_id) < 4 order by gc_arch.gc_arch_id;

So, nun werfen wir die eigenen Funde aus der GCGermany raus mit:
delete gc_db FROM gc_db inner join eFunds where gc_db.GC_DB_ID = concat ('GC',eFunds.eFunds_ID);

Danach werfen wir die archivierten Caches raus mit:
delete gc_db FROM gc_db inner join gc_arch where gc_db.GC_DB_ID = concat ('GC',gc_arch.GC_ARCH_ID);

Weil die GCGermany immer noch ein grausiges Format hat, ersetzen wir die Kommas in der Cachebeschreibung:
select replace(name,',',' ') from gc_db;

So, nun fangen wir an eine GPX Datei zu erzeugen mit:
select concat ('<wpt lat="',lat,'" lon="',lon,'">','\n'
'<time>',Jahr,'-',Monat,'-',Tag,'T00:00:00</time>','\n'
'<name>',GC_DB_ID,'</name>','\n'
'<desc>',Name,'</desc>','\n'
'<url>http://www.geocaching.com/seek/cache_details.aspx?guid=',OID,'</url>','\n'
'<sym>Geocache</sym>','\n'
'<type>Geocache|',Type,'</type>','\n'
'<groundspeak:cache id="1111111" available="True" archived="False" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0">','\n'
'<groundspeak:name>',Name,'</groundspeak:name>','\n'
'<groundspeak:type>',Type,'</groundspeak:type>','\n'
'<groundspeak:container>',Size,'</groundspeak:container>','\n'
'<groundspeak:difficulty>',S_Diff,'</groundspeak:difficulty>','\n'
'<groundspeak:terrain>',T_Diff,'</groundspeak:terrain>','\n'
'</groundspeak:cache>''\n'
'</wpt>','\n'
)
from gc_db;

Die Ergebnismenge wird nun als CSV Datei exportiert.

In der CSV Datei wird zunächst die Kopfzeile gelöscht. Nun sieht das Ganze schon sehr nach GPX Format aus.
Die Datei enthält noch viele "Gänsefüsschen"; die teilweise entfernt werden müssen.Dies erledige ich mit einem Editor:
Ersetze "" mit !!$$!!
anschliessend:
Ersetze " mit <nix> /* ein einfaches " soll damit gelöscht werden */
und dann:
Ersetze mit !!$$!! mit ""

Am Dateinende muss dann noch der String </gpx> hinzugefügt werden.

Ganz fertig sind wir noch nicht.
Am Anfang der exportierten Datei müssen wir noch den "GPX Header" einfügen.
Einen solchen Header habe ich aus einer PG entnommen.:
Beispiel:
<?xml version="1.0" encoding="utf-8"?>
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0" creator="Groundspeak Pocket Query" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0 http://www.groundspeak.com/cache/1/0/cache.xsd" xmlns="http://www.topografix.com/GPX/1/0">
<name>GCGermany</name>
<desc>Geocache file generated by Groundspeak</desc>
<author>Groundspeak</author>
<email>contact@groundspeak.com</email>
<time>2009-11-01T12:35:11.429-08:00</time>
<keywords>cache, geocache, groundspeak</keywords>
<bounds minlat="44.3983166666667" minlon="0.2076" maxlat="55.0582166666667" maxlon="9.99998333333333" />

Die Werte für bounds lassen sich per SQL ganz einfach ermitteln durch:
select max(lon), min(lon), max(lat), min(lat) from gc_db;

Eine so präparierte GPX-Datei "frisst" GSAK problemlos.
Mit PQs, die einen 'placed between' Zeitraum von ca. 3 Tagen abdecken, ergänze ich nun die GCGermany in GSAK. Bei 5 möglichen PQs/Tag sollte es möglich sein, die etwa über einen Monat alte Original GCGermany in überschaubarem Zeitraum auf einen aktuellen Stand zu bringen.

Marmotte
Geocacher
Beiträge: 152
Registriert: Mo 3. Jan 2005, 17:56

Re: Projekt: eigene Datenbank aus PQs

Beitrag von Marmotte » Mo 9. Nov 2009, 11:07

ernte58 hat geschrieben:Da die GCGermany.db (http://geocaching.bplaced.net/gc/) wird scheinbar seit dem 06.10.09 nicht mehr aktualisiert wird, habe ich mir eine Weg ausgedacht, der auf dem bisherigen Datenbestand aufsetzt und diesen mit PQs ergänzt.
[...]
Original GCGermany in überschaubarem Zeitraum auf einen aktuellen Stand zu bringen.
Mit Verlaub, du steckst da eine Menge Arbeit für ein IMO zweifelhaftes Ergebnis rein. Meines Wissens werden die Daten in der GC-Germany einmal erfasst, und nie wieder aktualisiert. Jede Koordinatenänderung eines Caches, hinterläßt einen unbrauchbaren Datensatz mit falschen Koordinaten in deiner Datenbank. In deiner Homezone wird das wahrscheinlich noch praktikabel sein, weil du die Daten per PQ eh häufiger aktualisierst. Aber wenn du mal eben in einer anderen 'Ecke' der Republik unterwegs bist, und nur mal schnell ein paar Tradis aus deinem Datenbestand auf den GPSr lädst, wirst du eine überdurchschnittliche DNF-Quote erzielen.

taxiinsel
Geocacher
Beiträge: 24
Registriert: Mi 5. Aug 2009, 11:47

Re: Projekt: eigene Datenbank aus PQs

Beitrag von taxiinsel » Mo 9. Nov 2009, 22:01

ernte58 hat geschrieben:Da die GCGermany.db (http://geocaching.bplaced.net/gc/) wird scheinbar seit dem 06.10.09 nicht mehr aktualisiert wird, habe ich mir eine Weg ausgedacht, der auf dem bisherigen Datenbestand aufsetzt und diesen mit PQs ergänzt.
...
Mit PQs, die einen 'placed between' Zeitraum von ca. 3 Tagen abdecken, ergänze ich nun die GCGermany in GSAK. Bei 5 möglichen PQs/Tag sollte es möglich sein, die etwa über einen Monat alte Original GCGermany in überschaubarem Zeitraum auf einen aktuellen Stand zu bringen.
Ich würde auch nicht auf der GCGermany.db aufbauen. Die Daten sind nicht zuverlässig genug. Es wäre besser, die Datenbank mit aktuellen PQs zu befüllen.

Wir sollten bei den Kollegen in der Schweiz nachfragen, wie die das machen. Dort gibt es ein Portal, dass alle Caches in der Schweiz in verschiedenen Formaten anbietet:

http://gc.etherlink.ch/stats/

Für eine Datei im Garmin-Format muss man allerdings einen Member-Check durchführen und sich als Premium-Mitglied "outen". Vielleicht hat diese Maßnahme die Geocaching.com-Götter beruhigt.

Gesperrt