Simples Geotagging in WordPress

Als kleinen Test für unseren Thailandurlaub habe ich eine kleine Erweiterung für mein Theme geschrieben, mit dem ich einzelnen Einträgen Koordinaten zuordnen kann. Das funktioniert einfach über ein benutzerdefiniertes Feld in das ich die Koordinaten einfüge, wie sie mir z.B. Google Maps liefert: In der Form zweier Dezimalzahlen für Breite und Länge.
Dort kann man mit der Funktion „Was ist hier?“ an jeder Stelle der Karte eine Markierung setzen und mit einem Klick die Koordinaten ablesen, um sie im Blog zu verwenden. Alternativ öffnet ein kleines JavaScript-Snipplet – in die Adressleiste gepostet – ein Fenster mit den Koordinaten des gerade zentrierten Punktes:

javascript:void(prompt('',gApplication.getMap().getCenter()));

Im Theme (beispielsweise in der single.php) kann man dieses Feld nun einfach in der „Loop“ abfragen:

<?php
$geodata = get_post_custom_values('geodata');
if(!(empty($geodata)))
{
echo '<strong>Geo: </strong>' . parse_field_geodata($geodata[0]);
}
?>

Die Funktion parse_field_geodata (in functions.php definiert) macht mir nur noch einen Link zu Google Maps, indem es den Parameter als Suchbegriff an eine URL hängt. Fertig ist meine Geotagging-Lösung ohne Plugin, ohne Komfort bei der Eingabe und ohne Web2.0 Features wie GeoRSS. Verblüffend einfach – „keep it simple“. 😉 Vielleicht schaue ich mir später doch noch die Plugin-API an, um die Eingabe auf Reisen zu vereinfachen und im Backend ggf. andere Formate in dezimale Darstellung umzurechnen.

PS: Diesen Eintrag habe ich auf die Palme gesetzt (siehe Link unter dem Eintrag).

Ein Gedanke zu „Simples Geotagging in WordPress

  1. Daniel

    Hi,

    Wenn Du es etwas komfortabler haben möchtest: Habe letzte Woche ein entsprechendes Plugin geschrieben was recht praktisch ermöglicht die Geodaten einem Post hinzuzufügen.

    Die Koordinaten werden dann als GeoMetatags/Microformats/Feedtags/Posttags und auch als Karte dem Post hinzugefügt: http://api.mygeoposition.com/wordpress/

    Beste Grüße,
    Daniel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.