Inhalt
Voraussetzungen
Datenbank-Tabellen
KML-Datenbank
Einstellungen
Datei: TXT-Datei importieren
KML-Datenbank auswählen
KML-Datenbank editieren
Verwendung der KML-Datenbank finden
Einträge einer KML-Datenbank auflisten
Eintrag einer KML-Datenbank editieren
Eintrag einer KML-Datenbank klonen/komplett klonen
Eintrag einer KML-Datenbank deaktivieren/löschen
Eintrag einer KML-Datenbank in eine anderen kopieren
KML-Datenbank in KML-Datei exportieren
Anlass des Programms
Der Programmautor ist Fan des OSM-Plugins von MiKa seit seiner ersten Version. Damals wurde eine Karte mit Markern mithilfe einer TXT-Datei erstellt, die für jeden Marker eine Zeile enthielt. Angaben waren durch Tabulatoren getrennt.
Die Version (5.1.1) ist erfreulicherweise für frühere Funktionen abwärtskompatibel und ohne Probleme an PHP-Versionen 7+ zu adaptieren. Die nächste Version soll laut MiKa auch die Kompatibilität der alten Funktionen mit PHP 7+ sicherstellen. Um von der responsiven Darstellung der neueren Version zu profitieren, müssen die Marker in einer KML-Datei präsentiert werden.
Dieses webbasierte Programm soll die Konvertierung einer TXT-Datei in eine KML-Datei und ihre Pflege erleichtern.
Voraussetzungen
In den Pfad des Theme Ihres WP-Blogs müssen zwei Dateien kopiert werden: osmkml.php und osmkml.css. Beide können Sie beim Programmautor erhalten.
Es ist eine neue Seite anzulegen und zu ‚veröffentlichen‘, für die das Template ‚OSM KML‘ ausgewählt wird. Als Permalink soll ‚URI Ihres Blogs’/osmkml verwendet werden. Dieser Permalink wird automatisch erzeugt, wenn als Titel der Seite osmkml eingegeben wird. Das Programm wird dann mit diesem Permalink aufgerufen.
Das Programms prüft bei jedem Start, ob Sie in Ihrem Blog mit Administatorrechten angemeldet sind.
Datenbanktabellen
Das Arbeiten mit dem Programm setzt drei Tabellen in der MYSQL-Datenbank (DB) voraus:
präfix_ihres_blogs_osm_bezug
präfix_ihres_blogs_osm_kmlzeile
präfix_ihres_blogs_osm_uri
Das Präfix entspricht der Angabe dazu in der config.php Ihres Blogs. Wenn Sie unter einer Domain verschiedene Blogs betreiben, können Sie also für jeden Blog spezifische KML-DBs verwalten, auch wenn die Namen der Tabellen identisch sind.
Bei jedem Start prüft das Programm die Existenz der Tabellen durch Zugriff auf ihre erste Zeile, in die das Programm beim Kreieren der Tabellen einen Testsatz geschrieben hat. Fehlen sie, bietet es Ihnen an, die Tabellen anzulegen, wenn Sie den Link WEITER anklicken. Die Testsätze dürfen also nicht gelöscht werden! Zusätzlich werden in der Tabelle osm_bezug die Zeilen mit ‚option‘ in der Spalte option angelegt. Bei jedem Start des Programms wird geprüft, ob Zeilen mit diesem typus existieren. Zur Bearbeitung dieser Optionen siehe Einstellungen‘.
Grundsätzlich sollten die Tabellen ausschließlich mithilfe des Programms bearbeitet werden.
Tabelle osm_bezug
Spalte mk_id (Typ SMALLINT): autom. inkrementierte Ganzzahl
Spalte typus (Typ VARCHAR): s. folgende Tabelle
Spalte icon (Typ VARCHAR): s. folgende Tabelle
Spalte iconzusatz (Typ VARCHAR): s. folgende Tabelle
Spalten scale (Typ VARCHAR, vorsetzt mit 1.0), hotx, hoty (TINYINT) nur relevant für Typus icon in Spalte typus (Parameter des Tags Style der KML-Datei)
Spalten datum, zuletzt, export (Typ DATETIME), aktiv (Typ TINYINT) dienen Verwaltungszwecken
Alle Zahlentypen ohne Vorzeichen
Bedeutung der Spalten icon und iconzusatz:
typus | Spalte icon | Spalte iconzusatz |
---|---|---|
icon | Parameter dieses Tags der KML-Datei ohne den in der option export_icon definierten Teil der Zeichenfolge Style | ‚id‘ + md5-hash der Spalte icon (Wert des Parameters Style und des Ankers der Tags styleUrl der KML-Datei) |
name | Dateiname der TXT-Datei | ggf. Kommentar zur KML-DB |
option | Name der Option | Wert der Option |
test | Testsatz | entfällt |
Diese Tabelle erlaubt es dem Programm, alle Einstellungen ohne Verwendung der WP-eigenen Tabelle options zu verwalten.
Tabelle osm_kmlzeile
Spalte kml_id (Typ INT): autom. inkrementierte Ganzzahl
Spalte feld_name (Typ VARCHAR): Inhalt der Tags name der kml-Datei (Spalte title der TXT-Datei)
Spalte description(Typ VARCHAR): Inhalt der Tags description der kml-Datei (ohne ![CDATA[…]) (Spalte description der TXT-Datei), wenn verlinkt, lediglich der verlinkte Text
Spalte name_mk_id (Typ SMALLINT): mk_id in Table osmbezug: Zuordnung zu Markerliste
Spalten point_lon, point_lat (Typ VARCHAR): Werte der Tags coordinates der kml-Datei (Spalten lat, lon der TXT-Datei in umgekehrter Folge)
style_verweis (Typ SMALLINT): mk_id des icon
Spalte uri_verweis (Typ SMALLINT): ui_id für Werte zum Tag description (s. nächste Tabelle)
Spalten zeile_verweis, klin_id, klin2_id (Typ SMALLINT) für spezielle Dienste im Blog des Programmautors
Spalten datum, zuletzt (Typ DATETIME), aktiv, version (Typ TINYINT), restore_id (Typ INT) dienen Verwaltungszwecken
Außer klin_id alle Zahlentypen ohne Vorzeichen
Tabelle osm_uri
Spalte uri_id (Typ SMALLINT): autom. inkrementierte Ganzzahl
Spalte uri (Typ VARCHAR): Aus der Spalte description der TXT-Datei extrahierter URI, wobei ggf. der in der option ‚import_domain‘ definierter Teil der Zeichenfolge entfernt wurde. Dann wird in Spalte http der Wert 1 gesetzt (s.u.).
Spalte hash (Typ VARCHAR): ‚k‘ + md5-Hash der uri
Spalte http (TYP TINNYINT, ohne Vorzeichen): 0 URI original 1 import_domain entfernt (s.o.)
Alle Zahlentypen ohne Vorzeichen
KML-Datenbank
Die Daten zu einer KML-Datei werden in einer ‚KML-Datenbank (KML-DB)‘ gehalten und dort ggf. editiert, ein neuer Eintrag hinzugefügt oder ein obsoleter gelöscht.
Eine KML-DB ist gekennzeichnet durch den Dateinamen der importierten TXT-Datei einschließlich der Dateierweiterung ‚txt‘.
Es kann für eine KML-Datei jeweils nur eine KML-DB aktiv sein. Soll eine TXT-Datei erneut importiert werden, muss eine zuvor für sie angelegte KML-DB deaktiviert werden.
Eine deaktivierte KML-DB kann gelöscht oder, wenn es für diese KML-Datei keine andere aktive KML-DB gibt, wieder aktiviert werden.
Einstellungen
Pfade bearbeiten
Sie erhalten eine Liste aller Optionen in der Tabelle osm_bezug (s.o.). Die Voreinstellungen waren beim Kreieren der Tabelle eingetragen worden:
import_domain (Wert: Dem option_value zu option_name ’siteurl‘ der WP-Tabelle präfix_ihres_blogs_options entnommen). Sie wird ggf. aus dem Link in der Spalte ‚description‘ der TXT-Datei beim Import entfernt. Das dient der Normalisierung der Tabelleninhalte. Enthält sie die Subdomain ‚www‘, wird eine Schaltfläche ‚Subdomain www entfernen‘ ausgegeben. Grund: Bei vielen Zeilen für Marker in der TXT-Datei und einer großen Anzahl solcher Dateien, kann der Verzicht, die Subdomain anzugeben, eine deutliche Einsparung der Dateigrößen haben mit den Konsequenzen für Speicherbedarf und Ladegeschwindigkeit.
import_pfad: Absoluter Pfad zum WP-Ordner uploads (Element ‚basedir‘ des Feldes, das die WP-Funktion wp_upload_dir liefert) oder einer seiner Unterordner. Für den Import werden Ihnen zur Auswahl neben dem Ordner uploads alle seine Unterordner angeboten, in denen eine TXT-Datei gefunden wird.
import_icon: Voreinstellung wie vor. Der Pfad ergibt mit der Domain die URI, in der in der TXT-Datei Icons referenziert sind. Zweck dieses Pfades: Aus der URI in der Spalte ‚icon‘ der TXT-Datei wird er beim Import entfernt. Wenn wie in den Markerlisten des Programmautors mehrere Icons denselben Pfad haben, wird so eine Normalisierung der Tabelleninhalte erreicht. Für die Behandlung einer Subdomain ‚www‘ gilt dasselbe wie bei import_domain.
export_domain: Damit wird beim Export der KML-Datei im Tag Placemark der Wert des Tags description zusammen mit dem Wert des Elementes uri der Tabelle osm_uri zusammengesetzt (Wert option_value zu option_name ’siteurl‘ der WP-Tabelle präfix_ihres_blogs_options). Bei jedem Programmstart wird dieser Wert aktualisiert. Das ist relevant, falls das scheme von http auf https umgestellt worden ist. Durch einen erneuten Export können dann die KML-Dateien aktualisiert werden.
export_pfad: Absoluter Pfad für das Verzeichnis, in das eine KML-Datei beim Export geschrieben wird. Voreinstellung: Element ‚basedir‘ des Feldes, das die WP-Funktion wp_upload_dir liefert, also der Ordner uploads. Existieren Unterordner, wird die Möglichkeit angeboten, diese für den Export einzustellen.
export_icon: Damit kann, wie für den Import beschrieben mit der Domain ein URI aufgebaut werden und im Tag Style einer KML-Datei der Wert des Tags href zusammen mit dem Wert des Elementes icon im typus icon zusammengesetzt werden.
Die Darstellung der Markerliste im OSM-Plugin erfordert nach dem Exportieren in einen geänderten export_pfad auch eine Anpassung des Parameterwertes beim Parameter file_list im Shortcode.
Sie haben sich vertan?
Pfade wiederherstellen setzt alle Änderungen zurück
Kopierziel wählen
Wenn der Bedarf besteht, den Eintrag einer KML-DB in eine andere zu kopieren, kann hier aus einer Auswahl aller vorhandenen KML-DB eine als Ziel folgender Kopiervorgänge festgelegt werden.
Datei: TXT-Datei importieren
Sie erhalten eine Liste aller Dateien mit der Dateierweiterung txt im eingestellten Importpfad (s.o.). Ist die Datei mit dem Programm bereits in die Datenbank importiert, ist der Dateiname in der Liste durchgestrichen.
Wenn Sie eine Datei anklicken anklicken, deren Zeilenstruktur nicht der Konvention des OSM–Plugins entspricht, wird ein Import abgelehnt. Existiert die Datei bereits, werden als Alternativen angeboten, die zuletzt importierte zu bearbeiten, z. B. deaktivieren, also als Backup in der Datenbank zu belassen, um danach den Import durchzuführen zu können.
Datei: KML-DB auswählen
Sie erhalten eine Liste aller KML-Datenbanken mit dem Datum der Kreation und der letzten Änderung. Deaktivierte sind durchgestrichen. Zum Beabeiten einer KML-DB klicken Sie den Link an.
Ist die KML-DB aktiv, wird Ihnen angeboten, ihre Einträge aufzulisten, sie in eine KML-Datei zu exportieren, zu deaktivieren oder ihre Verwendung in Ihrem Blog zu finden.
Ist sie deaktiviert, wird Ihnen angeboten, sie zu löschen, oder, wenn keine andere aktive DB den selben Namen hat, sie wieder zu aktivieren.
Ist eine Änderung an der KML-DB oder einer ihrer Einträge nach dem Export in eine kml-Datei erfolgt, wird die KML-DB in der Liste fett hervorgehoben.
Datei: KML-DB editieren
Das Editieren einer KML-DB gilt dem Kommentar, mit dem sie im Kopf der KML-Datei (Tag description) beschrieben ist.
Verwendung der KML-Datenbank finden
Sie erhalten eine verlinkte Liste aller Beiträge oder Seiten Ihres Blogs, in dem eine aus dieser KML-DB exportierte KML-Datei verwendet wird. Folgen Sie einem Link, öffnet der in einem eigenen Fenster/Tabulator den Beitrag bzw. die Seite.
Einträge einer KML-Datenbank auflisten
Sie erhalten eine Liste aller Einträge der ausgewählten KML-Datenbank, Name und Beschreibung, Datum der Kreation und der letzten Änderung. Deaktivierte sind durchgestrichen. Zum Beabeiten eines Eintrags klicken Sie den Link an.
Nach der Auswahl wird Ihnen angeboten, den Eintrag zu editieren, zu klonen oder komplett zu klonen.
Ist er aktiv, wird Ihnen angeboten, ihn zu deaktivieren und umgekehrt.
Nur aktive Einträge werden in die KML-Datei exportiert.
Nach jeder Änderung wird Ihnen der Export der geänderten DB in eine KML-Datei angeboten.
Eintrag einer KML-Datenbank editieren
Beim Editieren können Sie außer der kennzeichnenden ID des Eintrags sowie des Datum der Kreation und der letzten Änderung alle Felder editieren. Erst wenn Sie eines dieser Felder geändert haben, kann der Datensatz damit aktualisiert werden. Mit den alten Daten wird ein (deaktivierter) Backupsatz angelegt. Er erhält eine inkrementierte Versionsnummer und einen Rückbezug zur ID des aktualisierten Eintrags.
Danach wird Ihnen beim erneuten Aufruf des Eintrags angeboten, die editierten Daten wiederherzustellen. Folgen Sie diesem Link, wird nach dem aktuellen Inhalt eine Liste aller Backupeinträge gezeigt mit dem Angebot, die Daten des aktuellen Eintrags durch die eines der Backupeinträge zu ersetzen. In diesem Fall (und nur dann) wird angeboten, den verwendeten Backupsatz zu löschen.
Das erste Formularfeld für die Koordinaten (geogr. Länge) ist doppelt lang. Dadurch ist es möglich, in das Feld zwei kommaseparierte Koordinaten (Länge, Breite) einzutragen bzw. aus der Zwischenablage hinein zu kopieren, wenn in der Karte des Openroutesevice durch Klick auf ‚Copy Lng,Lat‘ das Koordinatenpaar in die Zwischenablage übernommen worden war.
Koordinatenprüfen: Mit dieser Schaltfläche öffnet sich eine Karte auf der Website des Programmautors, in der ein Hinweispfeil den durch die Koordinaten definierten Ort anzeigt. Unter der Karte werden zwei Links angeboten, die in einem eigenen Fenster das Formulars zum Editieren wieder aufrufen. Da im ersten Link außer den editierten Koordinaten alle Änderungen in anderen Formularfenstern verloren gehen, empfiehlt es sich, diese erst nach einer Prüfung der Koordinaten vorzunehmen.
Nach jeder Änderung wird die KML-DB in der Liste der KML-DB fett hervorgehoben, um an einen Export der geänderten KML-Datei zu erinnern.
Eintrag einer KML-Datenbank klonen/komplett klonen
Klonen erzeugt ein leeres Formular, komplett klonen ein mit allen bisherigen Werten (ausgenommen Feld URI) vorbelegtes Formular.
‚Eingaben absenden‘ ist nur erfolgreich, wenn alle Felder bis zu den Koordinaten einschl. mit Werten belegt sind.
Eintrag einer KML-Datenbank deaktiveren/aktivieren/löschen
Ein deaktivierter Eintrag ist in der Liste der Einträge durchgestrichen. Ist ein Eintrag deaktiviert, wird Ihnen angeboten, ihn zu löschen, oder wenn keine anderer identischer Eintrag existiert, ihn wieder zu aktivieren.
Eintrag einer KML-Datenbank in eine andere kopieren
Aus dem Eintrag werden folgende Werte in eine zuvor in den Einstellungen als Ziel ausgewählte KML-DB kopiert: Name, Beschreibung und Koordinaten. Beim anschließenden Editieren müssen ggf. URI nachgetragen und ein anderes Icon ausgewählt werden.
KML-Datenbank in KML-Datei exportieren
Die ausgewählte aktive KML-DB wird in eine Datei exportiert, die den Namen der KML-DB erhält, wobei die Dateierweiterung txt durch kml ersetzt wird. Die Datei wird in den eingestellten Exportpfad (Voreinstellung: pfad_ihres_blogs/wp-content/uploads) geschrieben.
Ist die Datei bereits vorhanden, wird Ihnen angeboten, diese zu überschreiben oder nach einer Umbenennung zu ersetzen.