Eine erste (noch sehr rudimentäre) Version des Programms um die DereGlobus .kml Dateien aus der SQL Datenbank zu "kompilieren" ist jetzt fertig. auf github (https://github.com/ShadowbladeXI/DereGlobus) kann man sich den momentanen Stand des Projekts herunterladen. Enthalten sind jetzt zusätzlich noch die SQL datenbank (mainDatabase.sqlite3), das programm um die .kml Dateien zu kompilieren (Quelldateien sind unter DevTools/generate_fromSQLite und damit ihr es einfacher ausprobieren könnt auch das fertige programm DevTools/generate/generate_fromSQLite-Release.exe ), ein Skelett für die aus SQL generierte version von DereGlobus (unter DereGlobus_SQLite) und ein .php Skript um sich die generierte Vesion in GoogleEarth anzeigen lassen zu können.
Ich gebe hier mal eine Schritt-für-Schritt Anleitung wie ihr euch die Entwicklungs-Umgebung herunterladen und selber an der Datenbank herumspielen könnt. Ich werde aber auch viele Bilder einfügen für die die es mitverfolgen wollen und (verständlicherweise) nicht viel Zeit mit diversen Installationen verbringen wollen.
1. Als erstes bruchen wir natürlich die Dateien von der DereGlobus Entwicklungs-Umgebung. Die könnt ihr von Github herunterladen. Wer sich nicht mit den einzelheiten von Git auseinandersetzen will lädt am besten einfach die .zip Datei herunter (Anleitung im Bild unten) unt entpack die dann.
githubZipDownload.png
2. Wenn ihr die DereGlobus Entwicklungs-Dateien herunterladet sind die als erstes mal einfach nur auf eurem Computer und nicht auf einem Server. Das .php Skript braucht aber einen Server um ausgeführt zu werden. Glücklicherweise gibt es Programme mit denen ihr ganz einfach kurzzeitig einen Server auf eurem Computer laufen lassen könnt den auch dann nur ihr auf eurem Computer benutzen könnt. Das war auch schon im vorherigen Konzept für DereGlobus notwendig. Hier ist die Einrichtungs Anweisung die ich vorher gepostet habe:
Ich habe zB. XAMPP verwendet, das ist einigermassen Schmerzfrei zum Aufsetzen, selbst wenn man wie ich keine Ahnung von Servern hat. Wenn jemand es damit testen will, einfach die Installation durchziehen (Man braucht nichts von den optionalen Features und der Installationsort is ziemlich egal). Danach kann man den Ordner von Github einfach in den "htdocs"-ordner ziehen der im xampp Ordner liegt (der wiederum dor liegt wo immer man xampp installiert hat). Den Server selber startet man indem man "xampp-control.exe" (im xampp ordner) startet und dort auf den Starten-Knopf drückt. Danach kann man in Google Earth einen neuen Netzwerk-Link hinzufügen und die Adresse: "http://localhost/*Pfad zum test.php skript relativ zu htdocs*" eingeben. Wenn alles richtig gelaufen ist, sollte man dann die ganzen DereGlobus Inhalte sehen.
Das ist eigentlich immer noch so gültig, mit der kleinen änderung, dass die Adresse den Pfad zu test_SQLiteVersion.php und nicht zu test.php haben muss. Bei mir ist die Adresse z.B. http://localhost/DereGlobus/test_SQLiteVersion.php
3. In GoogleEarth sollte man dann die Karte von Aventurien (und auch von den anderen Kontinenten) sehen, allerdings ohne irgendwelche GoogleEarth Markierungen für zB Städte. Die Karten werden (noch) nicht von der Datenbank generiert sondern sind noch genau so gespeichert wie in alten DereGlobus. Ich empfehle in den Einstellungen von GoogleEarth unter "General" die Einstellung für "KML Error Handling" auf "Silently accept all unrecognized data" zu stellen. Die momentane Version von DereGlobus hat noch ein par kleine Probleme die nicht weiter schlimm sind aber ansonsten viele nerfige Nachrichten generieren.
aventurienOhneMarker.jpg
4. Um Einträge aus der Datenbank in .kml Dateien für DereGlobus zu kompilieren muss lediglich das programm generate_fromSQLite-Release.exe im Ordner DevTools/generate_fromSQLite ausgeführt werden (Das Programm sollte sich sehr schnell wieder beenden, vermutlich seht ihr nur ein kurzes flickern auf dem Bildschirm). Ich habe leider nur eine Version für Windows erstellt, tut mir Leid für alle mit anderen Betreibsystemen. In der Finalen Version wäre es natürlich ideal möglichst für alle gängigen Systeme ein fertiges Programm zu haben. Nach den Ausführen des Programms sollte im Ordner "DereGlobus_SQLite" ein neuer Ordner "AutoGeneratedContent" erstellt worden sein. In diesem Ornder sind alle Dateien die aus der Datenbank generiert wurden.
autoGeneratedContentFolder.png
5. Um die neuen Einträge in GoogleEarth zu sehen muss man kurz einen rechtsklick auf den in Schritt 2. erstellten Network Link machen und Refresh auswählen (alternativ kann man auch einfach GoogleEarth neu starten). Die Städte Nostria und Andergast (die einzigen die schon in der Datenbank sind) sollten dann Angezeigt werden. Momentan werden sie noch mit unschönen Tag-Namen und einfachen Pins als Markern angezeigt. Man bekommt auch noch keine zusätzlichen Informationen wenn man draufklickt. Das alles kommt noch.
aventurienMitMarker.jpg
6. Um die Datenbank anzuschauen und zu verändern kann man zB den DB Browser for SQLite (https://sqlitebrowser.org/) verwenden. Man kann einfach die mainDatabase.sqlite3 Datei mit dem Programm öffnen. Um sich die Daten als Tabellen anzeigen zu lassen kann man auf den "Browse Data" Reiter gehen.
7. Wir können zB die Stadt Joborn hinzufügen (Siedlungen sind das einzige was momentan von DereGlobus automatisch generiert werden kann). Dazu gehen wir zuerst auf die tabelle "entity". Diese Tabelle speichert alle Einträge irgendeiner Art. Wir können dort eine neue Zeile hinzufügen und die id joborn eingeben. Keine 2 IDs dürfen gleich sein, mit dem Eintrag der ID in der "entity" Tabelle reservieren wir gewissermassen diese ID für die Stadt Joborn die wir jetzt eintragen. Wenn danach jemand zB eine Person die Joborn heisst in die Datenbank eintragen will muss man sich eine neue ID dafür ausdenken (zB joborn_person oder falls es keine Person sondern eine gleichnamige Stadt aber im Horasreich ist könnte man zB auch joborn_horasreich wählen). Die bereits bestehenden Einträge für Nostria und Andergast sind zB bereits mit "_stadt" am Ende, um sie von den Königreichen zu unterscheiden die auf jeden Fall noch in die Datenbank kommen werden.
entity.jpg
Nachdem wir die ID mit dem Eintrag in "entity" gesichert haben können wir die Informationen in die Datenbank eintragen. Allerdings können wir die Informationen nicht direkt in die Tabelle "settlement" eintragen. Jede Siedlung ist automatisch auch ein Ort und braucht darum einen entsprechenden Eintrag in der "location" Tabelle. Die Datenbank überprüft dies auch direkt und lässt gar nicht zu dass wir eine Siedlung hinzufügen die kein Ort ist. Die Einträge müssen also von allgemein zu spezifisch in strikter Reihenfolge in die Datenbank eingetragen werden. Wir gehen also in die "location" Tabelle, fügen eine neue Zeile hinzu und geben dort als id joborn ein (es muss die gleiche id sein wie die die wir in die "entity" Rabelle eingetragen haben). Die restlichen Einträge können wir erstmal auf NULL lassen.
location.jpg
Jetzt können wir das gleiche auch noch für die "settlement" Tabelle machen
settlement.jpg
Jetzt haben wir Joborn als Siedlung definiert. Allerdings kann es noch nicht im DereGlobus angezeigt werden, da wir keine Koordinaten definiert haben. Die Einträge für location_n_deg und location_e_deg (Position Nördlich/östlich in Grad). Dort steht noch NULL (Achtung NULL ist nicht gliech 0, NULL heisst soviel wie "nicht definiert" oder "unbekannt" in diesem Zusammenhang, wären beide Einträge auf 0 würde Joborn auf dem Schnittpunkt des äquators mit dem 0-Meridian eingezeichnet werden). Wir tragen also noch die Koordinaten für Joborn, 31.88746936818142 für location_n_deg und -1.966302493336189 für location_e_deg (negativ östlich heisst natürlich westlich) ein. Jetzt können wir unsere änderungen speichern indem wir auf "Write Changes" klicken.
coordinates.jpg
Jetzt hat zunächst nur die Datenbank den Eintrag für Joborn. DereGlobus muss jetzt mit dieser änderung neu kompiliert werden. Dazu müssen wir wieder nur "generate_fromSQLite-Release.exe" erneut ausführen. Damit GoogleEarth die änderung anzeigt müssen wir wieder den Netzwerk-Link aktualisieren oder GoogleEarth neu öffnen.
aventurienMitJoborn.jpg
Der nächste Schritt für mich wird es sein, die Darstellung der automatisch generierten Siedlungen zu verbessern damit sie so schön angezeigt werden wie im alten DereGlobus. Nach meinem Plan sollte damit alles auch schon automatisch bereit sein für die übersetzungen.
Danach werde ich mich vermutlich daran machen möglichst viele der bestehenden Daten im alten DereGlobus in die Datenbank automatisch zu kopieren, damit man nicht jeden einzelnen Eintrag mühsam von Hand hinzufügen muss.