]> git.openstreetmap.org Git - rails.git/blob - app/assets/javascripts/user.js
80b5059157ac40b40e4e155cbd1ccf7fc43b3b1e
[rails.git] / app / assets / javascripts / user.js
1 //= require leaflet.locate
2
3 $(document).ready(function () {
4   var map = L.map("map", {
5     attributionControl: false,
6     zoomControl: false
7   }).addLayer(new L.OSM.Mapnik());
8
9   L.OSM.zoom()
10     .addTo(map);
11
12   L.control.locate({
13     strings: {
14       title: I18n.t('javascripts.map.locate.title'),
15       popup: I18n.t('javascripts.map.locate.popup')
16     }
17   }).addTo(map);
18
19   if (OSM.home) {
20     map.setView([OSM.home.lat, OSM.home.lon], 12);
21   } else {
22     map.setView([0, 0], 0);
23   }
24
25   if ($("#map").hasClass("set_location")) {
26     var marker = L.marker([0, 0], {icon: getUserIcon()});
27
28     if (OSM.home) {
29       marker.setLatLng([OSM.home.lat, OSM.home.lon]);
30       marker.addTo(map);
31     }
32
33     map.on("click", function (e) {
34       if ($('#updatehome').is(':checked')) {
35         var zoom = map.getZoom(),
36             precision = zoomPrecision(zoom),
37             location = e.latlng.wrap();
38
39         $('#homerow').removeClass();
40         $('#home_lat').val(location.lat.toFixed(precision));
41         $('#home_lon').val(location.lng.toFixed(precision));
42
43         marker.setLatLng(e.latlng);
44         marker.addTo(map);
45       }
46     });
47   } else {
48     $("[data-user]").each(function () {
49       var user = $(this).data('user');
50       if (user.lon && user.lat) {
51         L.marker([user.lat, user.lon], {icon: getUserIcon(user.icon)}).addTo(map)
52           .bindPopup(user.description);
53       }
54     });
55   }
56 });