Fix user map icon and offset
authorJohn Firebaugh <john.firebaugh@gmail.com>
Thu, 8 Nov 2012 21:41:21 +0000 (13:41 -0800)
committerJohn Firebaugh <john.firebaugh@gmail.com>
Fri, 9 Nov 2012 20:59:31 +0000 (12:59 -0800)
app/assets/javascripts/map.js.erb
app/assets/javascripts/user.js

index ce75c1700a7fd5303550ce1331b56689a24bac79..e4392827e31425acf0b7fbe88c9944b5f04d2654 100644 (file)
@@ -120,6 +120,14 @@ function getArrowIcon() {
   });
 }
 
+function getUserIcon(url) {
+  return L.icon({
+    iconUrl: url || <%= asset_path('marker-red.png').to_json %>,
+    iconSize: [21, 25],
+    iconAnchor: [12, 27]
+  });
+}
+
 function addObjectToMap(object, zoom, callback) {
   $.ajax({
     url: OSM.apiUrl(object),
index 674204d7b3fad32b37ac6d74b4d012e6bcd6a4df..25456d04ebb080b46564fb359b5801fac551c163 100644 (file)
@@ -11,10 +11,11 @@ $(document).ready(function () {
   }
 
   if ($("#map").hasClass("set_location")) {
-    var marker;
+    var marker = L.marker([0, 0], {icon: getUserIcon()});
 
     if (OSM.home) {
-      marker = L.marker([OSM.home.lat, OSM.home.lon]).addTo(map);
+      marker.setLatLng([OSM.home.lat, OSM.home.lon]);
+      marker.addTo(map);
     }
 
     map.on("click", function (e) {
@@ -23,18 +24,15 @@ $(document).ready(function () {
         $('#home_lat').val(e.latlng.lat);
         $('#home_lon').val(e.latlng.lng);
 
-        if (marker) {
-          map.removeLayer(marker);
-        }
-
-        marker = L.marker(e.latlng).addTo(map);
+        marker.setLatLng(e.latlng);
+        marker.addTo(map);
       }
     });
   } else {
     $("[data-user]").each(function () {
       var user = $(this).data('user');
       if (user.lon && user.lat) {
-        L.marker([user.lat, user.lon], {icon: L.icon({iconUrl: user.icon})}).addTo(map)
+        L.marker([user.lat, user.lon], {icon: getUserIcon(user.icon)}).addTo(map)
           .bindPopup(user.description);
       }
     });