• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Online-Tool zum Verwalten von gelösten Mysteries

Rupa

Geowizard
Ok, also doch mit "richtiger" Nutzerverwaltung und DB. Das Gute daran: den Code, um GPX-Dateien komplett mit allen Attributen, etc.pp., in eine SQL-DB zu füttern, hab ich eh schon. ;-) Für den Anfang würde ich ohnehin erstmal sqlite nehmen, wenn man später was größeres brauchen sollte, ist das ja überhaupt kein Problem.

Und: das, was ich zur Verfügung stelle, wird auf keinen Fall einfach so öffentlich zugängliche Koordinaten bieten. Die sieht nur der jeweilige Nutzer (und ich natürlich :p ).
 

DunkleAura

Geowizard
BriToGi schrieb:
Sqlite wäre eine alternative, oder halt "selbst" irgendwie als textdatei, datenbank ist ja auch nix anderes :)
wie gefällt dir die idee eines sql dumps?

Code:
CREATE tabellexy (
feldx ...,
feldy ...,
usw...
)

INSERT INTO tabellexy (feldx, feldy, ...) VALUES ("text", 47.12345, ...);
INSERT INTO tabellexy (feldx, feldy, ...) VALUES ("text", 47.12345, ...);
usw...

so kann man einfach die tabellen in seine datenbank die man verwendet laden und dann mittels query inserts und/oder joins das so hinbiegen wie man es gerne hätte?

andererseits könnte man das ergebniss einfach nur durch json_encode jagen und speichern, raus kriegt man es dann wieder mit json_decode. vorteil, json ist sehr schlank und einfach zu handhaben. sogar ein flag kennt es so das man statt ein objekt ein array kriegt wenn man denn lieber arrays hätte.

csv wäre auch eine möglichkeit mit allen bekannten vor und nachteilen z.B. das es probleme machen könnte bei mehrzeiligen feldern.

xml wäre mit SimpleXML auch kein grosser act um es zu schreiben und lesen, auch wieder mit den bekannten vor und nachteilen.

ich persönlich würde warscheinlich zu json greifen, da man das ganz einfach umsetzen kann:
dummycode:
Code:
$wpts = array();
while($wpt = fetch_array()) {
   array_push($wpts, $wpt);
}
json_encode($wpts);
 

Rupa

Geowizard
DunkleAura schrieb:
ich persönlich würde warscheinlich zu json greifen, da man das ganz einfach umsetzen kann:
Naja, das ist ja das selbe, wie ich mit "pickle" vorgeschlagen hatte, eben einfach die Objekte serialisieren. Aber für eine persistente Datenbank mit vielen Tausen Einträgen und Nutzerverwaltung ist das eher nix (und außerdem schnarchlangsam).

Der Vorschlag, Datenbanken in CSV-Dateien zu speichern, ist dann schon eher von der komischen Sorte... :roll:

Aber mach mal, wir können das ja beide umsetzen. Für mich ist das eher Spielerei, und ich hab das auch nur angeboten, weil ich aus anderen Gründen eh schon tief in der Materie stecke. Du ja auch, jedenfalls hat meine Recherche vor ein paar Monaten darüber, wie man am besten GPX-Dateien mit GS-Extensions in Python parst, außer ein paar Anfragen von Dir in div. Foren und Python-Gruppen, nichts zutage gefördert. lxml ist ja ganz toll, aber damit scheint man an die Extensions nicht richtig heranzukommen. Hast Du inzwischen was besseres gefunden als xml.dom.minidom?
 

DunkleAura

Geowizard
Rupa schrieb:
Hast Du inzwischen was besseres gefunden als xml.dom.minidom?
hmm nein, hab python für mich vorerst aufgegeben und mache es mit dem werkzeug das ich kenne, PHP.
damit erreiche ich mein gewünschtes ziel. sogar die groundspeak namespaces krieg ich sauber raus ohne string ersetzungen.

Rupa schrieb:
Naja, das ist ja das selbe, wie ich mit "pickle" vorgeschlagen hatte, eben einfach die Objekte serialisieren. Aber für eine persistente Datenbank mit vielen Tausen Einträgen und Nutzerverwaltung ist das eher nix (und außerdem schnarchlangsam).
ja prinzipiell ja. nur kann man "pickle" auch in anderen sprachen als python deserialisieren?
was sowohl json, xml als auch notfalls csv erfüllen würde.

oder eben doch standard sql, portabel und universell einsetzbar.
 
OP
BriToGi

BriToGi

Geowizard
DunkleAura schrieb:
Code:
CREATE tabellexy (
feldx ...,
feldy ...,
usw...
)

INSERT INTO tabellexy (feldx, feldy, ...) VALUES ("text", 47.12345, ...);
INSERT INTO tabellexy (feldx, feldy, ...) VALUES ("text", 47.12345, ...);
usw...

so kann man einfach die tabellen in seine datenbank die man verwendet laden und dann mittels query inserts und/oder joins das so hinbiegen wie man es gerne hätte?

Exakt so hätte ich das auch gelöst... Du hast die Tabelle aber erstmalig "manuell" erstellt und dann mit Werten gefüttert? Oder erstellst Du die Tabelle dynamisch und guckst später wie das ganze sortiert ist und pickst die Felder raus die Du brauchst?

DunkleAura schrieb:
...mache es mit dem werkzeug das ich kenne, PHP.
damit erreiche ich mein gewünschtes ziel. sogar die groundspeak namespaces krieg ich sauber raus ohne string ersetzungen.

Code:
$wpts = array();
while($wpt = fetch_array()) {
   array_push($wpts, $wpt);
}
json_encode($wpts);

Du meinst mysql_fetch_array() ?

Ich würde es etwas anders machen - was aber wohl eher geschmackssache ist - und weil ich es so gelernt habe und mich heimischer fühle ;-)

Code:
$DBrows=mysql_num_rows($dbresult);

for($i=0,$dbobject=mysql_fetch_object($dbresult);$i<$DBrows;$i++,$dbobject=mysql_fetch_object($dbresult))
        {
        $_gpx[$dbobject->gc_code]['cache_name'] = $dbobject->cache_name;
        $_gpx[$dbobject->gc_code]['coord_north'] = $dbobject->coord_north;
        ...
        }

Ist ja aber das Gleiche in grün, nur so habe ich ein sauber strukturiertes Array und weiß im Kopf noch halbwegs was was ist... Aber wenn man da ist, ist man ja auch fast schon am Ziel.

Ein Codeschnipsel der aus der GPX-Datei erstmal ein sauber beschriftetes Array macht, um es überhaupt in die DB zu quetschen wäre echt das Größte!

:gott: :gott: :D


Rupa schrieb:
... den Code, um GPX-Dateien komplett mit allen Attributen, etc.pp., in eine SQL-DB zu füttern, hab ich eh schon....

Nur in der falschen Sprache für mich :-(
 

DunkleAura

Geowizard
BriToGi schrieb:
Exakt so hätte ich das auch gelöst... Du hast die Tabelle aber erstmalig "manuell" erstellt und dann mit Werten gefüttert? Oder erstellst Du die Tabelle dynamisch und guckst später wie das ganze sortiert ist und pickst die Felder raus die Du brauchst?
ich würde ein create table mit ausgeben tut nicht weh, und es existiert eine brauchbare tabelle.
floats sind foats und nicht irgendwelche varchar felder.

die daten würde ich dann je nach anwendung per INSERT INTO ... SELECT ... in die gewünschte passform bringen.
das war nur dummycode der zufälligerweise ähnlichkeit mit php hatte.
BriToGi schrieb:
Du meinst mysql_fetch_array() ?

Ich würde es etwas anders machen - was aber wohl eher geschmackssache ist - und weil ich es so gelernt habe und mich heimischer fühle ;-)

Code:
$DBrows=mysql_num_rows($dbresult);

for($i=0,$dbobject=mysql_fetch_object($dbresult);$i<$DBrows;$i++,$dbobject=mysql_fetch_object($dbresult))
        {
        $_gpx[$dbobject->gc_code]['cache_name'] = $dbobject->cache_name;
        $_gpx[$dbobject->gc_code]['coord_north'] = $dbobject->coord_north;
        ...
        }
ps: mysqli_result::fetch_object kann man auch in eine while schlife setzen, dann würdest du den unübersichtlichen, hässlichen und fehleranfälligen spaghetti code in der for schleife nicht brauchen.

ich dachte da eher an so etwas, da ich mysql nicht mehr verwende sondern nu noch mysqli. warum schau hier ganz unten warum.
code schnipsel ist ungetestet:
Code:
$result = $mysqli->query($sql);
while ($wpt = $result->fetch_array(MYSQLI_ASSOC)) {
	// Plan A:
	array_push($wpts, $wpt);
	// Plan B:
	// $wpts[$wpt['gccode']] = $wpt;
}
den umweg über ein mysqli_result::fetch_object würde ich mir da verkneifen auch wenn ich dies prinzipiell vorziehe.
aber warum sollte ich statt das ergeniss direkt passend anzufordern dies noch manuell passend konvertieren?
okay, ich gehe davon aus das die spalten in der tabelle auch brauchbare namen haben, wie ich es prinzipiell vorziehe.

BriToGi schrieb:
Ein Codeschnipsel der aus der GPX-Datei erstmal ein sauber beschriftetes Array macht, um es überhaupt in die DB zu quetschen wäre echt das Größte!
ich hab sowas da, nur bei den attributen war ich bisher zu faul die noch mit rein zu nehmen.
ich ziehe mir nur die daten raus die ich brauche.
evtl. geb ich irgendwann wenn ich den code bereinigt habe auch raus. (zu viel inline doku und experimente ;) )
 
OP
BriToGi

BriToGi

Geowizard
DunkleAura schrieb:
...wenn ich den code bereinigt habe auch raus. (zu viel inline doku und experimente ;) )

Tja, 60% des Codes beginnt mit

//test geht
...
// später ausprobieren
..

:D

Kommt mir bekannt vor...

Aber mal noch ne ganz andere Idee die mir beim Grübeln kam:

-Es wird vom User lediglich eine kleine Tabelle (in welcher Form auch immer) angelegt mit folgenden Inhalten:

-GC-Code
-Koordinaten (Final)
-z.B. Kommentar ("Checker ok", "Owner besätigt", "definitiv richtig", "vermutlich richtig", "Laut Checker: unten suchen, magnetisch"...

Dann:

Bookmarkliste mit gelösten Mysteries anlegen - also "Boardmittel nutzen" :roll: und als GPX exportieren

-simplexml_load_file
-Tabelle auslesen und Koordinaten im temporären "Array" ersetzen wenn sie im GPX waren (am GC-Code erkennen)
-Typ der betroffenen Caches als "APE-Cache" definieren (weil man hierfür auf dem Garmin z.B. das Icon "Gelöster Mysterie" hinterlegt hat und diese gleich sofort erkennt, siehe Beispiel unten links das Fragezeichen)
file.php

-Geändertes XML wieder wegschreiben als GPX (wobei ich hier auf die Schnelle keinen Befehl gefunden habe wie etwa simplexml_write_file)
-Den Kommmentar kann man ja als letztes Log mit reinquetschen oder so...

Das hätte den großen Vorteil:

-dass man die ganzen Daten nicht erst alle speichern muss
-dass man immer mit den neusten Daten arbeitet (ein kürzlich disabelter Cache fällt auf weil er in der letzten PQ mit als solcher gekennzeichnet ist, in der DB wäre die Info veraltet...
-dass man sich unter Umständen sogar seine Bookmarkliste sparen kann und pauschal alle seine GPX da durch jagen kann - denn alles was man gelöst hat (und in die Tabelle eingepflegt hat) ja automatisch ersetzt wird.
 

rs-sepl

Geowizard
Mal ehrlich. Die meisten Koords meiner gelösten Mysteries habe ich auf einen Zettel geschrieben und habe diese irgendwann ins GPS gehackt oder vorort eingetippt falls nötig. Alternativ ne gpx-Datei in Mapsource, wo alle aktuellen Mysteries drinne sind.

Also wozu brauche ich da eure diskutierte online-Anwendung?
 
OP
BriToGi

BriToGi

Geowizard
Wenn Du immer das gleiche Gerät (=Rechner/PC) benutzt und hauptsächlich zu Hause suchen gehst, vermutlich gar nicht :)

Wenn Du hingegen wie am Anfang des Themas beschrieben ist, oft unterwegs bist und ständig einen anderen Rechner verwendest, und hauptsächlich KEIN Windows-Betriebssystem, sieht das anders aus :)

Und wenn man Mysteries in einer Großstadt löst, sind diese manchmal 30km oder weiter entfernt, wenn wir irgendwo unterwegs sind - erstmal gucken ob man zufällig was einsammeln kann, manchmal liegt gleich um die Ecke was, ohne Planung, ganz spontan mal jetzt sofort ohne Vorbereitung gucken :)
 
OP
BriToGi

BriToGi

Geowizard
Aus aktuellem Anlass hier mal mein Stand:

http://www.geoclub.de/viewtopic.php?p=838537#p838537
 

hcy

Geoguru
Ich lese grade diesen Thread hier und bin begeistert. So was wünsche ich mir auch schon lange und bin nicht dazu gekommen das zu realisieren (wenn man schon den ganzen Tag entwickelt möchte man in der Freizeit lieber raus zum Cachen). Im Prinzip eine Art GSAKlight online. Also bitte öffentlich, von mir aus auch ohne Benutzerverwaltung, ich hab nicht so eine Spoiler-Phobie wie manche Leute.
 

Team_Amor

Geocacher
Mior ging es hauptsächlich darum eine Datenbank online zu haben, in denen ich schnell und unkompliziert die Koordinaten eingeben und später in der Wildnis über mein Iphone abrufen kann. Daher hab ich auch nicht so viele Automatismen wie BriToGi, dafür aber eine Benutzersteuerung und die Möglichkeit, die gelösten Mysterys in der näheren Umgebung anzuzeigen...
 

middy78

Geocacher
Ist zwar schon ein alter Thread, aber für mich noch von Interesse.


Ist aus diesem Projekt mal was geworden.
Wenn man googelt findet man öfters, das irgendwer mal angefangen hat, aber ein Ergebnis das brauchbar ist scheint es nirgends zu geben.

Hier im Forum findet man sonst auch noch das Webfrontend für GSAK
http://forum.geoclub.de/viewtopic.php?f=41&t=47501

Aber auch das scheint im Sande verlaufen zu sein.

Gruß
Middy
 

RodNoc

Geonewbie
Grad über den Thread gestolpert... man kann bei GC.com mit dem Stiftsymbol neben den Koords die Koordinaten verändern... so mache ich das: Koordinaten ändern, ab in die Liste "gelöste Mysteries" und wenn ich davon ein GPX ziehe, dann habe ich im GPX die richtigen Koordinaten. Und das kann ich an jedem Rechner der Welt machen ;)
 
OP
BriToGi

BriToGi

Geowizard
Und woher weisst du bei einer pocket query wo die dose liegt? Ich ziehe immer mehr als eine dose aufs gerät. Und wie wird der myst gekennzeichnet dass er manuell verlegt wurde?
 

hcy

Geoguru
Gibt's das Online Tool immer noch nicht? Schade eigentlich. In GC kann man die gelösten Koordinaten ja auch als Note eintragen, leider nur für PMs.
 
OP
BriToGi

BriToGi

Geowizard
Bin mittlerweile auf Gsak umgestiegen, seit der api integration macht es alles was ich brauche, naja fast...
 

middy78

Geocacher
BriToGi schrieb:
Bin mittlerweile auf Gsak umgestiegen, seit der api integration macht es alles was ich brauche, naja fast...


Nur man brauch seinen Rechner dabei.
Unterwegs gibt es ja einige Apps, um auf die Datenbank zu zugreifen, man muss sie nur auf den Smartphone haben..

Aber wie du gesagt hast,
Mach alles, zumindest fast
 
OP
BriToGi

BriToGi

Geowizard
Hab den rechner mit teamviewer immer im Zugriff, auch wenn er standby ist, dann wacht er auf
 
Oben