;;; my-osm.el -- Extensions for osm.el -*- lexical-binding: t -*- ;; Copyright (C) 2023 Free Software Foundation. ;; Author: Yuchen Pei ;; Package-Requires: ((emacs "28.2")) ;; This file is part of dotfiles. ;; dotfiles is free software: you can redistribute it and/or modify it under ;; the terms of the GNU Affero General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; dotfiles is distributed in the hope that it will be useful, but WITHOUT ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General ;; Public License for more details. ;; You should have received a copy of the GNU Affero General Public ;; License along with dotfiles. If not, see . ;;; Commentary: ;; Extensions for osm.el. ;;; Code: (defun my-org-osm-goto () (interactive) (when-let ((lat (string-to-number (org-entry-get (point) "Latitude"))) (lon (string-to-number (org-entry-get (point) "Longitude")))) (osm-goto lat lon 17))) (defun my-osm-org-add-properties () "find the latest osm buffer, and add the lon and lat to the current org node." (interactive) (let ((lat) (lon)) (with-current-buffer (window-buffer (cl-find-if (lambda (window) (with-current-buffer (window-buffer window) (equal major-mode 'osm-mode))) (window-list))) (setq lat (osm--lat) lon (osm--lon))) (org-entry-put (point) "Latitude" (number-to-string lat)) (org-entry-put (point) "Longitude" (number-to-string lon)))) (defun my-osm-show-center () (interactive) (osm--put-transient-pin 'osm-center osm--x osm--y "Center")) (provide 'my-osm) ;;; my-osm.el ends here