Hier wird Open Map Eberswalde (abgekürzt OME)
beschrieben,
also die Software, die die
interaktive Radkarte von Eberswalde
betreibt.
Bitte beachten Sie auch die Hinweise und Hilfe
zu diesem
Projekt, und dabei besonders die
rechtlichen Erklärungen.
Die wichtigsten Dateien von OME sind mapewA.php5 (Kartenseite) und mapewAsend.php (Absendeseite). Diese Dateien enthalten HTML, PHP, JavaScript und CSS. Es werden die Library OpenLayers und Daten von OpenStreetMap (insbesondere die "Kacheln" für die Hintergrundkarten) verwendet. OpenLayers.js ist auf diesem Server, das heißt, auf dem selben Rechner wie mapewA.php5, mapewAsend.php, ... . Der zusätzliche Code für die OSM-Daten (OpenStreetMap.js) wird vom OSM-Server geladen. Die PHP-Dateien, die zu OME gehören, hatten für einige Zeit die Erweiterung "php5", weil das für das genutzte 1&1-Hosting einfacher war. Jetzt (ab 21.06.2014) ist das, außer bei mapewA.php5, nicht mehr der Fall. Um die Verwendung der Erweiterung "php5" auf einem Apache2-Webserver zu ermöglichen, kann (muss?) man in der Datei /etc/apache2/mods-available/php5.conf in der Zeile <FilesMatch "\.ph(p3?|tml)$"> die Ziffer 3 durch eine 5 ersetzen. Zu den anderen OME-Dateien siehe unten die Liste unter "Dateien". Wichtig beim verwendeten PHP ============================ - Es muss PHP Version 5 verwendet werden, wegen der Verwendung von file_put_contents in mapewAsend.php. Möglicherweise kommen auch andere PHP5-spezifische Funktionen in OME-Dateien vor. PHP 4 scheint ja sowieso obsolet zu sein, also ist das kaum ein Problem. - magic_quotes_gpc muss off sein. Gegebenenfalls bitte den Artikel zu Magic Quotes auf php.net lesen. Character-Encoding ================== Die Character-Encoding sollte für alle Textdateien UTF-8 sein (auch für HTML, PHP, CSS, ...). Änderung von Dateinamen ======================= Bei Änderung der Dateinamen (zum Beispiel mapew.php statt mapewA.php; oder Erweiterung php statt php5) müssen natürlich die Links in den jeweils anderen Dateien (.php*, .html) entsprechend geändert werden (also zum Beispiel der Link auf mapewA.php5 in der Datei mapewAsend.php). Die entsprechenden Stellen kann man leicht finden, zum Beispiel mit dem Programm grep. Die Dateien von OME =================== Alle relevanten OME-Dateien sind in einem Ordner des Webserver-Dateisystems (also unterhalb des WWW-Root-Verzeichnisses), oder in Unterordnern dieses Ordners, zu finden. Dieser Ordner, der gewissermaßen der Ausgangspunkt der OME - Software im Dateisystem des Servers ist, wird hier "OME-Root-Ordner" genannt. Die Software kann einen oder mehrere "Inhalte" verwalten. Jeder Inhalt hat ein eigenes Unterverzeichnis im Root-Ordner, dieser Unterordner wird auch [datendir] genannt. Der Name des Unterordners [datendir] identifiziert den Inhalt und ist damit gewissermaßen der Kurzname des Inhalts. Jeder Inhalt hat ein oder mehrere Themen (auch Kategorien oder subjects genannt). Für die mit Geometrien verbundenen Daten jedes Themas gibt es eine Datei in dem entsprechenden [datendir]. Für die Hinweise ohne Geometrien (nur Text) gibt es für jeden Inhalt eine Datei im entsprechenden [datendir]. Für jeden Inhalt gibt es eine Protokolldatei (logfile). Alle diese Protokolldateien befinden sich in demselben Protokoll-Ordner ([logdir]). Im Namen jeder Protokolldatei ist der Name des entsprechenden Inhalts enthalten. Im OME-Root-Ordner (direkt, nicht in Unterordnern) befinden sich: software.html Diese Datei (Informationen zur Software für Open Map Eberswalde) mapewA.php5 Die "Kartenseite", zum Anzeigen und zum Erstellen von Kartenbojekten mapewAsend.php Die "Absendeseite", verwaltet Zusatzdaten, schickt Daten an Server fc.php erzeugt jeweils ein FeaturSet im Sinne von GeoJSON aus jeweils einer Dateie mit mehreren einzelnen Features; wird von mapewA.php5 für jedes Thema aufgerufen. textonly.php Seite und PHP-Skript zum Anzeigen von Beiträgen, die keinen Kartenbezug haben (also ohne Features sind); wird von mapewA.php5 aufgerufen. onekey.php PHP-Skript zum Erzeugen einer SVG-Datei mit der Legende (map key) für ein Thema. Dieses Skript verwendet [datendir]/categories.inc als Input. Es wird von mapewA.php5 aufgerufen. helpgeojson.html Informationen zum GeoJSON-Format hinweise.html Hilfe und Hinweise zur Nutzung dieser Software OpenLayers.js Datei mit dem hauptsächlichen JavaScript-Code von OpenLayers; von openlayers.org. Zum OpenLayers- System gehören noch Dateien in Unterordnern, diese Unterordner und Dateien entstehen beim Installieren von Openlayers. style.css Style-Definitionen (CSS), diese werden von OpenLayers gebraucht (wird beim Installieren von OpenLayers erzeugt) css0.css Einige Style-Definitionen Weitere Styles sind in theme/default/* php.ini Eine Datei "php.ini" mit der einen Zeile magic_quotes_gpc=Off scheint für die erforderliche Einstellung zu magic_quotes_gpc zu sorgen. .htaccess (kann vorhanden sein) Konfigurationsdaten, die der Web-Server berücksichtigt, wenn er auf Daten in diesem Directory zugreift; .htaccess kann die Zeile php_flag magic_quotes_gpc Off enthalten. in ./img Images, die von OpenLayers verwendet werden (im Download von openlayers.org enthalten, wird beim Installieren von OpenLayers erzeugt). in ./theme/default css und images (und anderes ?), die von OpenLayers verwendet werden. Die Bilder und die css sind wichtig, sonst funktioniert die Karte nicht richtig. Alles in diesem Directory ist von openlayers.org, es entsteht beim Installieren von OpenLayers. in ./[datendir] $datendir ist eine PHP-Variable und datendir eine JavaScript-Variable. Beide enthalten den Namen des Subdirectorys mit den Daten des aktuellen Inhalts. Zum Beispiel enthält das Subdirectory "rade" den Inhalt "Radfahren in Eberswalde". Daher ist "rade" gewissermaßen der Kurzname von "Radfahren in Eberswalde". [datendir]info.html Also zum Beispiel "radeinfo.html"; enthält spezielle Informationen zum Inhalt "datendir" (optional). categories.inc PHP-Include-Datei mit den Themen und einigen Konfigurationsdaten zur Anzeige der Themen. Die Themen erscheinen auf der Karte als Overlays im Sinne von OpenLayers. *.json Dateien mit den Features für je eine Kategorie (ein Thema) in einem Inhalt. Die Kategorien werden als je ein Overlay angezeigt. Die Daten sind nicht direkt als GeoJSON nutzbar, sie werden mit fc.php vorbereitet (zu einer FeatureCollection gemacht). fgid.inc PHP-Code mit einer Zahl, zur Erzeugung von zufälligen, aber eindeutigen fgid-Werten (Feature group id); wird nach jeder Verwendung neu geschrieben. Die fgid identifizieren eindeutig die Gruppen von Features, die bei jeweils einem "Absenden" von Nutzerbeiträgen entstehen. Jeder Inhalt hat eigene fgid-Werte. textonly Enthält Nutzerbeiträge, die keinen Kartenbezug haben (also ohne Features sind). in ./[logdir] $logdir ist eine PHP-Variable, die den Namen des log-Directorys für OME enthält. Für alle Inhalte, also alle datendir, gilt dasselbe log-Directory, aber jeder Inhalt hat seine eigene log-Datei. [datendir]log datendir-Logdatei. Speichert alle von Nutzern übermittelten Daten, sowie Datum und Uhrzeit der Einträge. Wenn E-Mail beziehungsweise Nutzername nicht angegeben ist, wird die IP- gespeichert. [datendir]log ist eine einfache Textdatei. Für jeden Nutzerbeitrag werden gespeichert: DatumZeit: Zeit in UTC geometrie: Geometrie als GeoJSON; falls vorhanden problemtext: Beschreibung des Sachverhalts subject: Thema (Kategorie) short: Kurzbeschreibung (Überschrift) fgid: Feature Group ID, ID für Eintrag email: E-Mail-Adresse oder Name (falls angegeben; sonst "null") remoteaddress: IP-Adresse des/der Nutzer(s)(in); wird gespeichert, wenn email leer ist, sonst wird "null" gespeichert. [datendir]log1, Alte Log-Dateien. Diese werden nicht automatisch [datendir]log2, ... erzeugt, sondern durch manuelle Umbenennung. Aus dem Internet http://www.openstreetmap.org/openlayers/OpenStreetMap.js Diese kleine Datei enthält JavaScript-Code für die Verarbeitung der OpenStreetMap-Daten Kacheln (Tiles) durch OpenLayers. [tiles] Kacheln (Tiles) für den Hintergrund; von OpenStreetMap. Diese werden automatisch von OpenLayers.js oder OpenStreetMap.js geladen. Die Tiles sind Rasterbilder, 256 x 256 Pixel groß. Sie haben URLs der Art http://b.tile.openstreetmap.org/15/17639/10699.png Probleme: ======== Den Hinweis auf das Meta-Tag http-equiv="X-UA- ..." am Anfang der PHP-Dateien mapewA.php5 und mapewAsend.php habe ich von Stack Overflow: http://stackoverflow.com/questions/20540084/how-to-set-document-mode-to-edge-in-ie11-win8-1 Ohne dieses Tag verwendet der IE manchmal den document mode 7 (entspricht etwa IE Version 7) und hat dann unter anderem sehr, sehr eingeschränkte JavaScript-Fähigkeiten. Auf Stack Overflow fand ich den Hinweis, dass der IE einen alten document mode nimmt (nehmen kann?), wenn Server und Browser in demselben lokalen Netz sind. Systematisch untersucht habe ich das nicht. Das "X-UA-..." Meta-Tag muss offenbar nahe am Anfang der Datei sein; es könnte sonst sein, dass der IE sich schon für den IE 7 mode entschieden hat, wenn er das Tag sieht, und dann kann er nicht mehr umschalten. Es sollte das erste Tag im <head> sein (?). Dieses Meta-Tag, also http-equiv="X-UA-Compatible" ... wird von validator.w3.org als Fehler in HTML5 angesehen. Dieser w3-Validator gilt zwar zur Zeit (Juni 2014) als "experimental". Der "http-equiv="X-UA-Compatible"-Tag ist aber vielleich wirklich kein Bestandteil von HTML5? Das Tag zum Einstellen von UTF-8: " ... meta http-equiv="Content-Type" content="text/html; charset=utf-8" ... " soll auch unter den ersten 1024 bytes des Dokuments sein. Siehe http://www.w3.org/TR/html5/document-metadata.html
Letzte Aktualisierung: 04.07.2014; für Software-Version 0.48