From de5d4de76359f5505d256e885fa8ae676fed62d1 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Sun, 22 Jul 2018 20:28:39 +0100 Subject: [PATCH] Now populating the map with pins as you move across it Unfortunately, haven't worked out how to remove the pins! --- src/cljs/youyesyet/canvasser_app/gis.cljs | 21 +++++++------------ .../youyesyet/canvasser_app/handlers.cljs | 13 ++++++------ 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/cljs/youyesyet/canvasser_app/gis.cljs b/src/cljs/youyesyet/canvasser_app/gis.cljs index 5d62f0c..64fbc18 100644 --- a/src/cljs/youyesyet/canvasser_app/gis.cljs +++ b/src/cljs/youyesyet/canvasser_app/gis.cljs @@ -111,25 +111,20 @@ [view] (if view - (doall - (.eachLayer - view - (fn [layer] - (try - (if - (instance? js/L.Marker layer) - (.removeLayer view layer)) - (catch js/Object any - (js/console.log - (str "Failed to remove pin '" - layer "' from map: " any)))))))) + (let [layers (.eachLayer view (fn [l] l))] + (doall + (map + #(if + (instance? js/L.Marker %) + (.removeLayer view %)) + layers)))) view) (defn refresh-map-pins "Refresh the map pins on this map. Side-effecty; liable to be problematic." [] - (let [view (map-remove-pins @(subscribe [:view])) + (let [view @(subscribe [:view]) ;; (map-remove-pins @(subscribe [:view])) addresses @(subscribe [:addresses])] (if view diff --git a/src/cljs/youyesyet/canvasser_app/handlers.cljs b/src/cljs/youyesyet/canvasser_app/handlers.cljs index cd1c305..5249b82 100644 --- a/src/cljs/youyesyet/canvasser_app/handlers.cljs +++ b/src/cljs/youyesyet/canvasser_app/handlers.cljs @@ -10,6 +10,7 @@ [re-frame.core :refer [dispatch reg-event-db reg-event-fx subscribe]] [youyesyet.canvasser-app.gis :refer [refresh-map-pins get-current-location]] [youyesyet.canvasser-app.state :as db] + [youyesyet.locality :refer [locality]] )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -140,11 +141,10 @@ (reg-event-fx :fetch-locality (fn [{db :db} _] - (let [uri (str source-host - "rest/get-local-data?latitude=" - (:latitude db) - "&longitude=" - (or (:longitude db) -4))] + (let [locality (locality (:latitude db) (:longitude db)) + uri (str source-host + "rest/get-local-data?locality=" + locality)] (js/console.log (str "Fetching locality data: " uri)) @@ -157,7 +157,6 @@ :on-failure [:bad-locality]} :db (add-to-feedback db :fetch-locality)}))) -;; http://localhost:3000/rest/get-local-data?latitude=54.85131525968606&longitude= (reg-event-db :get-current-location @@ -170,7 +169,7 @@ :process-locality (fn [db [_ response]] - (js/console.log "Updating locality data") + (js/console.log (str "Updating locality data: " (count response) " addresses")) ;; loop to do it again (dispatch [:dispatch-later [{:ms 5000 :dispatch [:fetch-locality]} {:ms 1000 :dispatch [:get-current-location]}]])