emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/osm 0bcc5b4484: Minor optimization


From: ELPA Syncer
Subject: [elpa] externals/osm 0bcc5b4484: Minor optimization
Date: Wed, 11 May 2022 13:57:43 -0400 (EDT)

branch: externals/osm
commit 0bcc5b4484b375d08bb99a57f36aff6f7c845a4c
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Minor optimization
---
 osm.el | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/osm.el b/osm.el
index bb515f6d4b..97cf698306 100644
--- a/osm.el
+++ b/osm.el
@@ -431,11 +431,11 @@ Should be at least 7 days according to the server usage 
policies."
   (setq y (* float-pi (- 1 (* 2 (/ y 256.0 (expt 2.0 zoom))))))
   (/ (* 180 (atan (/ (- (exp y) (exp (- y))) 2))) float-pi))
 
-(defun osm--lon-to-x (lon zoom)
+(defsubst osm--lon-to-x (lon zoom)
   "Convert LON/ZOOM to x coordinate in pixel."
   (floor (* 256 (expt 2.0 zoom) (osm--lon-to-normalized-x lon))))
 
-(defun osm--lat-to-y (lat zoom)
+(defsubst osm--lat-to-y (lat zoom)
   "Convert LAT/ZOOM to y coordinate in pixel."
   (floor (* 256 (expt 2.0 zoom) (osm--lat-to-normalized-y lat))))
 
@@ -810,11 +810,10 @@ Should be at least 7 days according to the server usage 
policies."
 
 (defun osm--pin-inside-p (x y lat lon)
   "Return non-nil if pin at LAT/LON is inside tile X/Y."
-  (let ((p (osm--lon-to-x lon osm--zoom))
-        (q (osm--lat-to-y lat osm--zoom)))
-    (setq x (* x 256) y (* y 256))
-    (and (>= p (- x 32)) (< p (+ x 256 32))
-         (>= q y) (< q (+ y 256 64)))))
+  (let ((p (/ (osm--lon-to-x lon osm--zoom) 256.0))
+        (q (/ (osm--lat-to-y lat osm--zoom) 256.0)))
+    (and (>= p (- x 0.125)) (< p (+ x 1.125))
+         (>= q y) (< q (+ y 1.25)))))
 
 (defun osm--put-pin (pins id lat lon name)
   "Put pin at X/Y with NAME and ID in PINS hash table."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]