Geotag-Plugin für Serendipity überarbeitet
Das Geotag-Plugin für Serendipity zeichnet Blogartikel auf Landkarten unterhalb des Beitrags oder in der Seitenleiste ein. Beim Verfassen kann ein Blogger einen Artikel mit den Geo-Koordinaten seines Aufenthaltsortes versehen (so genanntes Geotaggen). Diese Position wird anschließend auf einer kleinen Karte angezeigt. Nützlich ist diese Funktion ist beispielsweise für Reiseblogs.
Weniger Fehler, mehr Funktionen
Leider hatte das Plugin zuletzt einige Bugs, die zum Teil aus Schnittstellenänderungen von Google Maps resultierten. Grischa hat sich das Plugin vorgenommen und vorgestern eine neue Version eingecheckt, die die meisten Bugs behebt und sogar tolle neue Features mitbringt.
Allerdings berichtete Grischa von Problemen mit der Kartendarstellung in der Seitenleiste. In den Kommentaren zu seinem Artikel kam außerdem der Wunsch auf, neben Google Maps auch Karten von Openstreetmap einzubinden. Zum einen unterliegen letztere einer Creative Commons-Lizenz, zum anderen hat Google vor kurzem Zugriffsbeschränkungen für seine Kartenschnittstelle eingeführt. Leichtfertig kommentierte ich, dass ich mir das ja mal ansehen könnte. Als passionierter Openstreetmapper und Geocacher liegt mir das Thema eben am Herzen
Gesagt, getan. Der Aufwand war allerdings größer, als ich erwartet hatte. Zum einen lief das Plugin noch mit dem Google Map Javascript API in Version 2, die aber schon sein 1,5 Jahren als deprecated eingestuft ist und in absehbarer Zeit abgeschaltet werden wird; also habe ich den Code auf Version 3 umgestellt. Zum anderen habe ich Openstreetmap mithilfe der OpenLayers-Bibliothek eingebunden, die nicht gerade simpel zu benutzen ist. Sie ist andererseits zwar sehr mächtig, aber ich habe für das Plugin nur einen kleinen Teil ihrer Fähigkeiten benötigt. Doch nun ist es geschafft: Meine aktualisierte Version 1.26 habe ich gerade hochgeladen, sie dürfte in Kürze für alle verfügbar sein.
Installation und Update
Das Plugin kann wie in Serendipity üblich mittels Spartacus installiert und aktualisiert werden. Zu beachten ist, dass sowohl ein Ereignis-Plugin (serendipity_event_geotag
) als auch ein Seitenleisten-Plugin (serendipity_plugin_geotag
) installiert werden kann. Das Ereignis-Plugin ist die Voraussetzung dafür, dass Artikel geotagged werden können und sollte deshalb immer zuerst installiert werden. Das Seitenleisten-Plugin kann zusätzlich installiert werden und visualisiert dann die Geo-Koordinaten der einzelnen Artikel auf einer Übersichtskarte in der Seitenleiste.
Wichtig:Wer schon eine bisherige Version des Seitenleisten-Plugins im Einsatz hat und weiter die Karte von Google Maps einbinden möchte, muss seinen API-Key für die neue Version 3 des Google Maps Javascript API freischalten. Wie das geht, ist hier auf Englisch beschrieben. Für Rückmeldungen, Fragen oder bei Problemen stehe ich über die Kommentare unterhalb dieses Artikels, im Serendipity Forum und auf Twitter zur Verfügung. Grischa, der vermutlich schon wieder an weiteren Funktionen programmiert, hilft bestimmt auch gern
Mit Openstreetmap in die Zukunft
Natürlich gibt es mit LeafletJS eine sehr elegante Möglichkeit, eine Karte mit Markierungen einzubinden. Ich habe das u.a. im Wiki unserer PHPUG genutzt. Allerdings ist LeafletJS nicht über ein CDN einbindbar wie etwa die Bibliotheken von Google und JQuery. Daher habe ich zunächst einmal darauf verzichtet, das Plugin mit zusätzlichen Dateien zu "belasten". Vermutlich wird LeafletJS aber irgendwann kommen.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Konrad Bauckmeier am :
Danke für die Arbeit an dem Plugin! Ein guter Freund von mir hat für mein Blog im Frühjahr schon ziemlich heftige Vorarbeit geleistet. Schade, dass dir meine Seite http://www.dd4kids.de/pages/karte.html nicht bekannt war, vielleicht hättest du sonst einiges davon wiederverwerten können...
Meine Kartenlösung beruht derzeit noch auf einem technischen Umweg, wo ein Python-Script per Cron-Job die Geodaten ausliest und aufbereitet. Das ist auch der Grund, warum die Lösung noch nicht generell für S9Y verfügbar ist. Leider gehen meine Programmier-Kenntnisse nicht weit genug und als ich die Lösung mal im Forum vorgestellt hatte, war niemand interessiert.
Grischa am :
Da dass Trackback offenbar nicht geklappt hat, hier auch noch mal: Danke für die Zusammenarbeit an dem Plugin! Hat echt Laune gemacht.
Henning Halfpap am :
Hi, erstmal vielen Dank für das tolle Plugin - ich habe es per Spartacus installiert und finde es ganz große Klasse!
Ich habe allerdings ein kleines Problem - vermutlich habe ich irgendetwas falsch konfiguriert, habe aber keine Ahnung, was: folgendes Problem: Im Seitenleisten-Plugin kann man ja beim Klick auf die Marken direkt zu den damit verbundenen Artikeln springen - ich habe es auf dieser Seite auch probiert, funktioniert einwandfrei.
Bei meinem Blog kommen aber die URLs durcheinander: beim klick auf die Marken fehlt der String "index.php?/" nach dem Pfadnamen /s9y/. Ich habe gesehen, daß hier die URLs ein noch anderes Format haben, kann ich das irgendwo einstellen?
Ich benutze S9Y noch nicht so lange und kenne mich daher noch nicht so gut in der Konfiguration aus - vermutlich 'ne ganz einfache Geschichte, die ich übersehen habe.
Dankeschön für jeden Tipp, gerne auch als Link zu einem M, das ich dann RTF kann
LG
Henning
Matthias Gutjahr am :
Hallo Henning, am besten wäre es vermutlich, wenn du dein Problem im Serendipity-Forum (board.s9y.org) schilderst, dann erfährt es die nötige Aufmerksamkeit Offenbar werden die Permalinks zu deinen Einträgen nicht richtig erzeugt, was mit Konfigurationseinstellungen der Permalink-Struktur zu tun haben kann. Ggf. hilft uns ein Screenshot dieser Einstellungen weiter, den du an deinen Forumspost anhängen könntest.
Henning Halfpap am :
Hallo, Matthias,
vielen Dank für den Tip, werde ich gleich umsetzen - ich bin gerade etwas im Streß, deswegen dauert's etwas, bis ich reagiere...
LG
Henning
Henning Halfpap am :
Nachtrag: ich hab die Lösung gefunden - der Verweis auf's Forum war wie immer Gold Wert, das Stichwort "PermaLink" auch. Lösung des Problems: URL Rewrite einschalten. Ich sag ja, es war 'ne Kleinigkeit.
Danke nochmal für die Hilfe!
LG
Henning
Matthias Gutjahr am :
Hallo Henning, freut mich, dass dein Problem behoben ist. Ich habe mir dein Blog gerade mal angesehen, funktioniert jetzt wunderbar
Reinhard am :
Hallo, habe das Plugin am WE auf urluabsfoto.org eingebunden. Auch das nachträgliche zuordnen der Koordinaten ging mit dem Plugin wirklich sehr einfach. Beim Ergänzen der Einträge fiel mir auf, das ich häufig unterschiedliche Zoom-Level vermisst habe. Schön wäre es, wenn man diesen für jeden Eintrag übergeben könnte.
Unabhängig davon eine super Sache
Grüße Reinhard