From: John Firebaugh Date: Thu, 8 Nov 2012 21:41:21 +0000 (-0800) Subject: Fix user map icon and offset X-Git-Tag: live~5252^2~18 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/1927bc6ca845f16220f15df0b0f0ac9ea12ce7f2?hp=648f23259680f55d233656413679c58eec98c985 Fix user map icon and offset --- diff --git a/app/assets/javascripts/map.js.erb b/app/assets/javascripts/map.js.erb index ce75c1700..e4392827e 100644 --- a/app/assets/javascripts/map.js.erb +++ b/app/assets/javascripts/map.js.erb @@ -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), diff --git a/app/assets/javascripts/user.js b/app/assets/javascripts/user.js index 674204d7b..25456d04e 100644 --- a/app/assets/javascripts/user.js +++ b/app/assets/javascripts/user.js @@ -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); } });