+from addr import mapimage, geocode
+from geohash import encode
+
+def coord2dms(coord):
+ ns = coord[0]
+ ew = coord[1]
+ mnt,sec = divmod(ns*3600,60)
+ deg,mnt = divmod(mnt,60)
+ out = u'''%d°%2d'%5.2f"%s''' % ( deg,mnt,sec,'N')
+ mnt,sec = divmod(ew*3600,60)
+ deg,mnt = divmod(mnt,60)
+ out += u''' %d°%2d'%05.2f"%s''' % ( deg,mnt,sec,'E')
+ return out
+
+
+def maplink(lat,lon):
+ return '''
+<uri type="location">
+ <link xlink:href=
+ "http://www.openstreetmap.org/?mlat=%s&mlon=%s&zoom=18&layers=M">
+ <inlinemediaobject>
+ <imageobject condition="web">
+ <imagedata fileref="%s.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase>geo:%s,%s</phrase>
+ </textobject>
+ </inlinemediaobject>
+ <para>%s</para>
+ </link>
+</uri>
+''' % (lat, lon, encode(float(lat), float(lon)), lat, lon, coord2dms((lat, lon)))