Online-Tool zum Verwalten von gelösten Mysteries

Software von und für die Welt.

Moderator: Schrottie

Rupa
Geowizard
Beiträge: 1121
Registriert: Do 10. Jun 2010, 00:32
Wohnort: 45133 Essen
Kontaktdaten:

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon Rupa » Mo 24. Jan 2011, 16:56

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 ).
Bild
Werbung:
Benutzeravatar
DunkleAura
Geowizard
Beiträge: 1848
Registriert: So 9. Sep 2007, 11:10
Kontaktdaten:

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon DunkleAura » Mo 24. Jan 2011, 17:12

BriToGi hat geschrieben: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: Alles auswählen

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: Alles auswählen

$wpts = array();
while($wpt = fetch_array()) {
   array_push($wpts, $wpt);
}
json_encode($wpts);
Use http://coord.ch/ the Multi Waypoint Redirector
Bild Bild
Rupa
Geowizard
Beiträge: 1121
Registriert: Do 10. Jun 2010, 00:32
Wohnort: 45133 Essen
Kontaktdaten:

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon Rupa » Mo 24. Jan 2011, 17:29

DunkleAura hat geschrieben: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?
Bild
Benutzeravatar
DunkleAura
Geowizard
Beiträge: 1848
Registriert: So 9. Sep 2007, 11:10
Kontaktdaten:

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon DunkleAura » Mo 24. Jan 2011, 21:43

Rupa hat geschrieben: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 hat geschrieben: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.
Use http://coord.ch/ the Multi Waypoint Redirector
Bild Bild
Benutzeravatar
BriToGi
Geowizard
Beiträge: 1681
Registriert: Mo 23. Aug 2010, 15:46

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon BriToGi » Di 25. Jan 2011, 00:44

DunkleAura hat geschrieben:

Code: Alles auswählen

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 hat geschrieben:...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: Alles auswählen

$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: Alles auswählen

$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 hat geschrieben:... 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 :-(
Benutzeravatar
DunkleAura
Geowizard
Beiträge: 1848
Registriert: So 9. Sep 2007, 11:10
Kontaktdaten:

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon DunkleAura » Di 25. Jan 2011, 16:46

BriToGi hat geschrieben: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 hat geschrieben: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: Alles auswählen

$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: Alles auswählen

$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 hat geschrieben: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 ;) )
Use http://coord.ch/ the Multi Waypoint Redirector
Bild Bild
Benutzeravatar
BriToGi
Geowizard
Beiträge: 1681
Registriert: Mo 23. Aug 2010, 15:46

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon BriToGi » Do 27. Jan 2011, 11:41

DunkleAura hat geschrieben:...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)
Bild
-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.
Benutzeravatar
rs-sepl
Geowizard
Beiträge: 1344
Registriert: Di 10. Feb 2009, 10:02

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon rs-sepl » Sa 29. Jan 2011, 00:41

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?
Benutzeravatar
BriToGi
Geowizard
Beiträge: 1681
Registriert: Mo 23. Aug 2010, 15:46

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon BriToGi » Sa 29. Jan 2011, 02:20

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 :-)
Benutzeravatar
BriToGi
Geowizard
Beiträge: 1681
Registriert: Mo 23. Aug 2010, 15:46

Re: Online-Tool zum Verwalten von gelösten Mysteries

Beitragvon BriToGi » Di 15. Feb 2011, 22:52

Aus aktuellem Anlass hier mal mein Stand:

viewtopic.php?p=838537#p838537

Zurück zu „Linux/Java/PHP“



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder