[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/osm 5af320c57f 10/77: Add Stamen servers, support jpeg
From: |
ELPA Syncer |
Subject: |
[elpa] externals/osm 5af320c57f 10/77: Add Stamen servers, support jpeg tiles |
Date: |
Mon, 7 Mar 2022 08:58:04 -0500 (EST) |
branch: externals/osm
commit 5af320c57f3ec47f8ed12d6b6f5778313c9f609c
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Add Stamen servers, support jpeg tiles
---
osm.el | 71 ++++++++++++++++++++++++++++++++++++++++++++----------------------
1 file changed, 47 insertions(+), 24 deletions(-)
diff --git a/osm.el b/osm.el
index 984db67566..a0c46aed74 100644
--- a/osm.el
+++ b/osm.el
@@ -40,34 +40,53 @@
(defcustom osm-tile-server-list
'((openstreetmap-org
+ :name "OpenStreetMap"
:min-zoom 2 :max-zoom 19 :max-connections 2
- :url ("https://a.tile.openstreetmap.org/"
- "https://b.tile.openstreetmap.org/"
- "https://c.tile.openstreetmap.org/"))
+ :url ("https://a.tile.openstreetmap.org/%s/%s/%s.png"
+ "https://b.tile.openstreetmap.org/%s/%s/%s.png"
+ "https://c.tile.openstreetmap.org/%s/%s/%s.png"))
(openstreetmap-de
- :name "OpenStreetMap Deutschland"
+ :name "OSM Deutschland"
:min-zoom 2 :max-zoom 19 :max-connections 2
- :url ("https://a.tile.openstreetmap.de/"
- "https://b.tile.openstreetmap.de/"
- "https://c.tile.openstreetmap.de/"))
+ :url ("https://a.tile.openstreetmap.de/%s/%s/%s.png"
+ "https://b.tile.openstreetmap.de/%s/%s/%s.png"
+ "https://c.tile.openstreetmap.de/%s/%s/%s.png"))
(openstreetmap-fr
- :name "OpenStreetMap France"
+ :name "OSM France"
:min-zoom 2 :max-zoom 19 :max-connections 2
- :url ("https://a.tile.openstreetmap.fr/osmfr/"
- "https://b.tile.openstreetmap.fr/osmfr/"
- "https://c.tile.openstreetmap.fr/osmfr/"))
+ :url ("https://a.tile.openstreetmap.fr/osmfr/%s/%s/%s.png"
+ "https://b.tile.openstreetmap.fr/osmfr/%s/%s/%s.png"
+ "https://c.tile.openstreetmap.fr/osmfr/%s/%s/%s.png"))
(openstreetmap-humanitarian
- :name "OpenStreetMap Humanitarian"
+ :name "OSM Humanitarian"
:min-zoom 2 :max-zoom 19 :max-connections 2
- :url ("https://a.tile.openstreetmap.fr/hot/"
- "https://b.tile.openstreetmap.fr/hot/"
- "https://c.tile.openstreetmap.fr/hot/"))
+ :url ("https://a.tile.openstreetmap.fr/hot/%s/%s/%s.png"
+ "https://b.tile.openstreetmap.fr/hot/%s/%s/%s.png"
+ "https://c.tile.openstreetmap.fr/hot/%s/%s/%s.png"))
(opentopomap-org
:name "OpenTopoMap"
:min-zoom 2 :max-zoom 17 :max-connections 2
- :url ("https://a.tile.opentopomap.org/"
- "https://b.tile.opentopomap.org/"
- "https://c.tile.opentopomap.org/")))
+ :url ("https://a.tile.opentopomap.org/%s/%s/%s.png"
+ "https://b.tile.opentopomap.org/%s/%s/%s.png"
+ "https://c.tile.opentopomap.org/%s/%s/%s.png"))
+ (stamen-watercolor
+ :name "Stamen Watercolor"
+ :min-zoom 2 :max-zoom 19 :max-connections 2
+ :url ("https://stamen-tiles-a.a.ssl.fastly.net/watercolor/%s/%s/%s.jpg"
+ "https://stamen-tiles-b.a.ssl.fastly.net/watercolor/%s/%s/%s.jpg"
+ "https://stamen-tiles-c.a.ssl.fastly.net/watercolor/%s/%s/%s.jpg"))
+ (stamen-terrain
+ :name "Stamen Terrain"
+ :min-zoom 2 :max-zoom 18 :max-connections 2
+ :url ("https://stamen-tiles-a.a.ssl.fastly.net/terrain/%s/%s/%s.png"
+ "https://stamen-tiles-b.a.ssl.fastly.net/terrain/%s/%s/%s.png"
+ "https://stamen-tiles-c.a.ssl.fastly.net/terrain/%s/%s/%s.png"))
+ (stamen-toner
+ :name "Stamen Toner"
+ :min-zoom 2 :max-zoom 19 :max-connections 2
+ :url ("https://stamen-tiles-a.a.ssl.fastly.net/toner/%s/%s/%s.png"
+ "https://stamen-tiles-b.a.ssl.fastly.net/toner/%s/%s/%s.png"
+ "https://stamen-tiles-c.a.ssl.fastly.net/toner/%s/%s/%s.png")))
"List of tile servers."
:type '(alist :key-type symbol :value-type plist))
@@ -176,16 +195,15 @@ We need two distinct images which are not `eq' for the
display properties.")
"Return tile url for coordinate X, Y and ZOOM."
(let ((url (osm--server-property :url)))
(prog1
- (format "%s%d/%d/%d.png"
- (nth osm--url-index url)
- zoom x y)
+ (format (nth osm--url-index url) zoom x y)
(setq osm--url-index
(mod (1+ osm--url-index)
(length url))))))
(defun osm--tile-file (x y zoom)
"Return tile file name for coordinate X, Y and ZOOM."
- (format "%s%d-%d-%d.png" (osm--tile-cache) zoom x y))
+ (format "%s%d-%d-%d.%s" (osm--tile-cache) zoom x y
+ (file-name-extension (car (osm--server-property :url)))))
(defun osm--tile-cache ()
"Return tile cache directory."
@@ -379,8 +397,13 @@ We need two distinct images which are not `eq' for the
display properties.")
(pos (+ (point-min) (* j (1+ osm--width)) i)))
(when (and (>= i 0) (< i osm--width)
(>= j 0) (< j osm--height))
- (setq image (or image `(image :type png :file ,(osm--tile-file x y
osm--zoom)
- :width 256 :height 256)))
+ (unless image
+ (let ((file (osm--tile-file x y osm--zoom)))
+ (setq image `(image :type
+ ,(if (member (file-name-extension file) '("jpg"
"jpeg"))
+ 'jpeg 'png)
+ :file ,file
+ :width 256 :height 256))))
(with-silent-modifications
(put-text-property
pos (1+ pos) 'display
- [elpa] externals/osm d27892f63a 40/77: Add some utility functions, (continued)
- [elpa] externals/osm d27892f63a 40/77: Add some utility functions, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 3c0950a24b 31/77: Simplify bookmark handling, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 11a04bb5b9 66/77: osm-server: Improve completion command, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 88e7e36e43 49/77: Rename function, ELPA Syncer, 2022/03/07
- [elpa] externals/osm a9d0ec74e3 07/77: Simplify placeholder, ELPA Syncer, 2022/03/07
- [elpa] externals/osm db20223911 27/77: Minor cleanup, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 92fb0c72dd 62/77: Add osm-bookmark-delete, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 6f14067777 26/77: add mwheel scroll functions, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 9ffe9592ba 55/77: Simplify code, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 28afc293f9 47/77: Improve bookmark and Org link support, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 5af320c57f 10/77: Add Stamen servers, support jpeg tiles,
ELPA Syncer <=
- [elpa] externals/osm 593b95a50c 17/77: Add more maps, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 305aea000b 03/77: Use cl-loop, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 5f002af18c 24/77: Fix file extraction, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 5f47b77d20 45/77: Move predeclared variables, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 585346b5e0 53/77: Improve bookmark command, ELPA Syncer, 2022/03/07
- [elpa] externals/osm fce584fbae 60/77: Add osm-bookmark-delete-click, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 591d783065 36/77: README: Improve documentation, ELPA Syncer, 2022/03/07