Oskar Welzl: Weblog zur Homepage

Geotagging à la twoday

Lang schon hats mich gewurmt, daß ich bei Blog-Einträgen keine geographischen Koordinaten eingeben kann, wenn sie sich auf einen bestimmten Ort beziehen. Jetzt kann ich - Geotagging à la twoday.

Alles, was es dazu braucht, sind zwei zusätzliche Eingabefelder im Formular für das Erstellen/Ändern von Einträgen (Story.editForm), das man über „Layout verwalten > Skins“ erreicht:

<p>
<% message key="Story.create.title"%>:<br />
<% story.content part="title" as="editor" size="24" class="formTitle" %>
</p>
<p>
<% message key="Story.create.text"%>:<br />
<% story.content part="text" as="editor" cols="60" rows="15" class="formText" %>
<br />
Längengrad: <% story.content part="geo.lon" as="editor" size="12" %> (z.B. für Mieming/Tirol: Longitude 10.9833) <br />
Breitengrad: <% story.content part="geo.lat" as="editor" size="12" %> (z.B. für Mieming/Tirol: Latitude 47.3)<br/>

</p>

Die fett hervorgehobenen Stellen habe ich eingefügt. Sie bewirken, daß jeder Eintrag nun neben den Standardfeldern (Titel, Text, …) auch über ein Feld „geo.lon“ für den Längengrad und „geo.lat“ für den Breitengrad verfügt. Diese beiden Felder lassen sich anschließend in jeder Skin als <% story.content part="geo.lat" %> bzw. <% story.content part="geo.lon" %> ansprechen. Bizarr verschachtelte prefix-/suffix-Konstruktionen sorgen dabei dafür, daß twoday die Werte nur dann anzuzeigen versucht, wenn sie auch wirklich da sind (nicht jeder Eintrag ist mit Geotags versehen):

<% story.content part="geo.lon" prefix=<% story.content part="geo.lat" prefix='<a href= "http://maps.google.com/maps?f=q&hl=de&q=' suffix=',' %> suffix='&t=h">Google-Maps</a>' %>

Dieses Makro am Ende der Skin Story.display z.B. stellt einen Link zu Google-Maps dar, falls sich ein Wert in „geo.lon“ befindet. Alles andere ist dann nur mehr Spielerei mit vorhandenen Daten.