Created
December 28, 2015 15:55
-
-
Save michaeljforster-zz/45fe5351be2a4ac2c688 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ;;;; leaflet-quick-start.paren | |
| ;;; Map and Tile Layers | |
| (defvar *default-lat-lng* '(51.505 -0.09)) | |
| (defvar *default-zoom* 13) | |
| (defvar *map* (ps:chain -l (map "map") (set-view *default-lat-lng* *default-zoom*))) | |
| (ps:chain -l | |
| (tile-layer "http://{s}.tile.osm.org/{z}/{x}/{y}.png" | |
| (ps:create "attribution" | |
| "© <a href=\"http://osm.org/copyright\">OpenStreetMap</a> contributors")) | |
| (add-to *map*)) | |
| ;;; Markers, Circles, Polygons | |
| (defvar *marker* | |
| (ps:chain -l | |
| (marker '(51.505 -0.09)) | |
| (add-to *map*) | |
| (bind-popup "A CSS3 popup") | |
| (open-popup))) | |
| (defvar *circle* | |
| (ps:chain -l | |
| (circle '(51.508 -0.11) | |
| 500 | |
| (ps:create "color" "red" | |
| "fillColor" "#f03" | |
| "fillOpacity" 0.5)) | |
| (add-to *map*))) | |
| (defvar *polygon* | |
| (ps:chain -l | |
| (polygon '((51.509 -0.08) | |
| (51.503 -0.06) | |
| (51.51 -0.047))) | |
| (add-to *map*))) | |
| (ps:chain *marker* (bind-popup "I'm a marker") (open-popup)) | |
| (ps:chain *circle* (bind-popup "I'm a circle")) | |
| (ps:chain *polygon* (bind-popup "I'm a polygon")) | |
| ;;; Popups | |
| (defvar *popup* | |
| (ps:chain -l | |
| (popup) | |
| (set-lat-lng '(51.5 -0.09)) | |
| (set-content "I'm a standalone popup") | |
| ;; open-on vs add-to to automaically close when another popup is opened | |
| (open-on *map*))) | |
| ;;; Events | |
| (defvar *click-popup* (ps:chain -l (popup))) | |
| (defun on-map-click (e) | |
| ;; (alert (+ "You clicked the map at" (ps:chain e latlng (to-string)))) | |
| (let ((lat-lng (ps:@ e latlng))) | |
| (ps:chain *click-popup* | |
| (set-lat-lng lat-lng) | |
| (set-content (+ "You clicked the map at " (ps:chain lat-lng (to-string)))) | |
| (open-on *map*)) | |
| (ps:chain -l | |
| (marker lat-lng) | |
| (add-to *map*) | |
| (bind-popup (+ "I'm at " (ps:chain lat-lng (to-string))))))) | |
| (ps:chain *map* (on "click" #'on-map-click)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment