Skip to content

Commit

Permalink
Bump to 0.0.5.
Browse files Browse the repository at this point in the history
  • Loading branch information
Bastien Guerry committed Sep 10, 2013
1 parent fd30664 commit ea1ab79
Show file tree
Hide file tree
Showing 8 changed files with 182 additions and 123 deletions.
4 changes: 2 additions & 2 deletions project.clj
Expand Up @@ -11,15 +11,15 @@
;; [org.clojure/clojurescript "0.0-1877"]
[org.clojure/core.async "0.1.0-SNAPSHOT"]
[lib-noir "0.6.8"]
[domina "1.0.2-SNAPSHOT"]
[com.cemerick/friend "0.1.5"]
[net.drib/blade "0.1.0"]
[compojure "1.1.5"]
[com.taoensso/carmine "2.2.0"]
[org.clojure/data.json "0.2.2"]
[ring-server "0.2.8"]
[shoreleave/shoreleave-remote-ring "0.3.0"]
[shoreleave/shoreleave-remote "0.3.0"]]
[shoreleave/shoreleave-remote "0.3.0"]
[domina "1.0.2-SNAPSHOT"]]
:ring
{:handler wlmmap.handler/war-handler,
:init wlmmap.handler/init,
Expand Down
18 changes: 18 additions & 0 deletions resources/public/css/about.css
@@ -0,0 +1,18 @@
@import url(http://fonts.googleapis.com/css?family=Inconsolata);

html {
background: #fff;
padding: 1em;
font-family: "Inconsolata";
font-size: 120%;
}

h1 {padding: 0em; margin: 0}

body {
background: #eee;
padding: 2em;
box-shadow: 2px 2px 2px #ccc;
}


20 changes: 12 additions & 8 deletions resources/public/css/generic.css
Expand Up @@ -26,17 +26,21 @@ form.main {
position:fixed;
top:10px;
right:10px;
opacity:1;
opacity:.9;
border-radius:15px;
padding:1em;
padding:1em;
background: black;
color: white;
z-index: 1000;
}

.corner p {
margin-top: .7em;
padding: 0;
}

.corner:hover {
opacity:1;
opacity:.9;
}

.corner span {
Expand All @@ -47,15 +51,15 @@ form.main {
}

.corner a {
padding: .5em;
background: #eee;
color: black;
background: black;
color: #eee;
padding: .4em;
text-decoration: none;
}

.corner a:hover {
background: #aaa;
padding: .5em;
background: #ccc;
color: black;
text-decoration: none;
}

Expand Down
44 changes: 23 additions & 21 deletions resources/public/js/main.js

Large diffs are not rendered by default.

99 changes: 48 additions & 51 deletions src/cljs/map.cljs
Expand Up @@ -11,50 +11,20 @@
(blade/bootstrap)

(def mymap (-> L .-mapbox (.map "map" "examples.map-9ijuk24y")
(.setView [45 3.215] 6)))
(.setView [45 3.215] 6)))

(def stopper "stop")

(declare maybe-show-here removelastlayer)
(.on mymap "dragstart" #(set! stopper "stop"))

(.on mymap "zoomstart"
#(do (set! stopper "stop")
(removelastlayer)))

(.on mymap "dragend"
#(do (set! stopper "go")
(removelastlayer)
(maybe-show-here)))

(.on mymap "zoomend"
#(do (set! stopper "go")
(maybe-show-here)))

(def lang (.-language js/navigator))

;; (macros/rpc (set-db-options-from-lang lang) [p] (js/alert (pr-str p)))

(remote-callback :set-db-options-from-lang [lang] #(%))

(declare setdb addmarkers)

(macros/rpc (set-db-options-from-lang (.-language js/navigator)) [p] p)
(def zoomlimit 10)
(def layers ())

(defn removelastlayer []
(when (not (nil? (last layers)))
(do (.removeLayer mymap (last layers))
(set! (.-value (dom/by-id "per")) "")
(set! layers (butlast layers)))))

(defn setmap []
(let [db (dom/by-id "db")
yo (dom/by-id "sm")
per (dom/by-id "per")]
(set! (.-value per) "0")
(set! (.-onclick yo)
#(do (when (not (empty? layers)) (removelastlayer))
(addmarkers (clojure.string/replace (.-value db) #"/" ""))))))

(defn addmarkers [dbb]
(set! stopper "go")
(let [ch (chan)
Expand All @@ -71,48 +41,75 @@
:marker-color (if img "FF0000" "0044FF")})
marker (-> L (.marker (L/LatLng. lat lng)
{:icon icon}))]
(set! (.-value per) (Math/round perc))
(set! (.-value per) (str (Math/round perc) "%"))
(.bindPopup marker title)
(.addLayer markers marker))))))
(remote-callback :get-markers [dbb]
;; #(go (doseq [[a cnt] (map list % (range 100000))]
;; (<! (timeout 1))
;; (>! ch [a cnt (/ (* cnt 100) (count %))]))))
#(go (doseq [[a cnt] (map list % (range 100000))]
(<! (timeout 1))
(<! (timeout 20))
(>! ch [a cnt (/ (* cnt 100) (count %))]))))

(.addLayer mymap markers)
;; (remote-callback
;; :get-center [dbb]
;; #(.setView mymap (vector (first %) (last %)) 5))
))
(remote-callback
:get-center [dbb]
#(.setView mymap (vector (first %) (last %)) 5))))

(defn addmarkers-toolserver [map-bounds-string]
(let [ch (chan)
markers (L/MarkerClusterGroup. {:disableClusteringAtZoom 10})
markers (L/MarkerClusterGroup.
{:disableClusteringAtZoom (+ zoomlimit 3)})
per (dom/by-id "per")]
(js/alert "go!!!")
(set! layers (conj layers markers))
(go (while (not= stopper "stop")
(let [[[_ [lat lng] img title] cnt perc] (<! ch)
(let [[[id [lat lng] img title] cnt perc] (<! ch)
icon ((get-in L [:mapbox :marker :icon])
{:marker-symbol ""
:marker-color (if img "FF0000" "0044FF")})
marker (-> L (.marker (L/LatLng. lat lng) {:icon icon}))]
(set! (.-value per) (Math/round perc))
(set! (.-value per) (str (Math/round perc) "%"))
(.bindPopup marker title)
(.addLayer markers marker))))
(remote-callback :get-markers-toolserver [map-bounds-string]
#(go (doseq [[a cnt] (map list % (range 100000))]
(<! (timeout 1))
(<! (timeout 20))
(>! ch [a cnt (/ (* cnt 100) (count %))]))))
(.addLayer mymap markers)))

(defn maybe-show-here []
(let [z (.getZoom mymap)]
(when (> z 10)
(addmarkers-toolserver (.toBBoxString (.getBounds mymap))))))
(let [z (.getZoom mymap)
sh (dom/by-id "showhere")]
(when (>= z zoomlimit)
(set! (.-innerHTML sh) "HERE"))
(when (< z zoomlimit)
(set! (.-innerHTML sh) "...."))))

(.on mymap "zoomend" #(maybe-show-here))

(defn setmap []
(let [db (dom/by-id "db")
ex (dom/by-id "ex")
show (dom/by-id "sm")
stop (dom/by-id "stop")
per (dom/by-id "per")
sh (dom/by-id "showhere")]
(set! (.-onclick ex) #(.reload js/location))
(set! (.-onclick show)
#(do
(when (not (empty? layers)) (removelastlayer))
(addmarkers (clojure.string/replace (.-value db) #" ?/ ?" ""))))
(set! (.-onclick stop) #(set! stopper "stop"))
(set! (.-onclick sh)
#(let [z (.getZoom mymap)]
(when (< z zoomlimit)
(js/alert
(str "This will load up to 5000 monuments from the database.\n\n"
"It takes a while if the focus is too large.\n\n"
"Zoom " (- zoomlimit z)
" times to be more comfortable.")))
(do (set! stopper "go")
(when (not (empty? layers)) (removelastlayer))
(addmarkers-toolserver (.toBBoxString (.getBounds mymap))))))))


;; initialize the HTML page in unobtrusive way
(set! (.-onload js/window) setmap)

0 comments on commit ea1ab79

Please sign in to comment.