Unser schönes Emsland
Heute möchte ich euch ein kleines Herzens Projekt vorstellen, bei dem ich beides vereint habe. Meine Leidenschaft fürs Fotografieren, als auch die Leidenschaft für die Informatik. Wie ihr im Namen seht, geht es um den Landkreis, in dem ich wohne. Ich bin der Meinung, auch hier im Emsland, haben wir viele Sehenswürdigkeiten, auch wenn diese nicht auf den ersten Blick ersichtlich sind. Ich versuche sowohl bekannte als auch unbekannte sehenswürdige Orte mit einzubringen. Darunter die offensichtlichen wie z.B. das Schloss Clemenswerth, aber auch solche, die wahrscheinlich noch niemand abgelichtet hat. Das Emsland besteht nämlich nicht nur aus seinen bekannten Destillerien 😉
In diesem Frame könnt ihr die Marker sehen. Die Marker stehen jeweils für ein sehenswerten Ort.
Mit dem Bild und dem Standort kommen noch kleine Informationen über den Ort/Sehenswürdigkeit, falls es denn soweit welche gibt. Darunter versuche ich noch allgemeine Informationen mit einzubringen, ob z.B. der Ort barrierefrei ist, wie dieser am besten zu erreichen ist (Auto, Bus, zu Fuß), ob es dort Verpflegung gibt und Parkmöglichkeiten vorhanden sind. Die Karte kann als Vollbild über https://steviesblog.de/blog/map aufgerufen werden.
Bitte achtet drauf die Orte sauber zu verlassen, keine Gegenstände/Pflanzen zu zerstören und die Tierwelt nicht zu stören! Respektiert auch bitte den Privatbesitz.
Technische Details
Ich möchte euch auch nicht vorhalten, wie genau dies funktioniert. Zuerst, wenn ich ein Spot erreicht habe, brauche ich die GPS Koordinaten. Dafür habe ich mir eine kleine App mit Kotlin geschrieben, die mir diese in eine CSV Datei abspeichert, mit dem Namen, den ich vorher vergeben habe. Diese Informationen speichere ich dann später in der Datenbank ab. Dafür existiert eine eigenständige Tabelle.
DROP TABLE IF EXISTS `c_spot`; CREATE TABLE `c_spot` ( `ID` int NOT NULL AUTO_INCREMENT, `NAME` varchar(45) NOT NULL, `LATITUDE` decimal(24,15) NOT NULL, `LONGITUDE` decimal(24,15) NOT NULL, `MARKER_ID` INT(11) NOT NULL, `PICTURE_ID` bigint unsigned NOT NULL, `TEXT` varchar(245) NOT NULL, `DATE` datetime NOT NULL, `CREATED_AT` datetime NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `SPOT_UNIQUE` (`NAME`,`LATITUDE`,`LONGITUDE`), KEY `PICTURE_ID` (`PICTURE_ID`), KEY `MARKER_ID` (`MARKER_ID`), CONSTRAINT `ibfk_1` FOREIGN KEY (`PICTURE_ID`) REFERENCES `posts` (`ID`) ON DELETE RESTRICT ON UPDATE RESTRICT CONSTRAINT `ibfk_2` FOREIGN KEY (`MARKER_ID`) REFERENCES `c_spot_marker` (`id`) )
DROP TABLE IF EXISTS `c_spot_marker`; CREATE TABLE `c_spot_marker`( `ID` INT(11) NOT NULL AUTO_INCREMENT, `NAME` VARCHAR(50) NOT NULL, PRIMARY KEY (`ID`) )
Die Daten gelangen über ein Plugin in die Tabelle. Die Spalte “TEXT” enthält den Html Code für das Popup-Fenster mit den zusätzlichen Informationen. Leaflet wird benutzt, um die Makierer zu platzieren, während OpenStreetMap(OSM) als Karte dazu gezogen wird. Eine for-Schleife geht über alle definierten Punkte in der Tabelle und platziert diese auf der Karte.