瀏覽代碼

org-contacts: added org-contacts-show-map (requires google-maps-el)

Signed-off-by: Julien Danjou <julien@danjou.info>
Rüdiger Sonderfeld 14 年之前
父節點
當前提交
df1ad057da
共有 1 個文件被更改,包括 18 次插入0 次删除
  1. 18 0
      contrib/lisp/org-contacts.el

+ 18 - 0
contrib/lisp/org-contacts.el

@@ -54,6 +54,11 @@ If set to nil, all your Org files will be used."
   :type 'string
   :group 'org-contacts)
 
+(defcustom org-contacts-address-property "ADDRESS"
+  "Name of the property for contact address."
+  :type 'string
+  :group 'org-contacts)
+
 (defcustom org-contacts-birthday-property "BIRTHDAY"
   "Name of the property for contact birthday date."
   :type 'string
@@ -594,4 +599,17 @@ Org-contacts does not specify how to encode the name. So we try to do our best."
 	(current-buffer)
 	(progn (save-buffer) (kill-buffer)))))
 
+(defun org-contacts-show-map (&optional name)
+  "Show contacts on a map. Requires google-maps-el."
+  (interactive)
+  (unless (fboundp 'google-maps-static-show)
+    (error "org-contacts-show-map requires google-maps-el."))
+  (google-maps-static-show
+   :markers
+   (loop
+      for contact in (org-contacts-filter name)
+      for addr = (cdr (assoc-string org-contacts-address-property (caddr contact)))
+      if addr
+      collect (cons (list addr) (list :label (string-to-char (car contact)))))))
+
 (provide 'org-contacts)