+ map.on("baselayerchange", function (e) {
+ if (map.getZoom() > e.layer.options.maxZoom) {
+ map.setView(map.getCenter(), e.layer.options.maxZoom, { reset: true });
+ }
+ });
+
+ var position = $('html').attr('dir') === 'rtl' ? 'topleft' : 'topright';
+
+ L.OSM.zoom({position: position})
+ .addTo(map);
+
+ var locate = L.control.locate({
+ position: position,
+ icon: 'icon geolocate',
+ iconLoading: 'icon geolocate',
+ strings: {
+ title: I18n.t('javascripts.map.locate.title'),
+ popup: I18n.t('javascripts.map.locate.popup')
+ }
+ }).addTo(map);
+
+ var locateContainer = locate.getContainer();
+
+ $(locateContainer)
+ .removeClass('leaflet-control-locate leaflet-bar')
+ .addClass('control-locate')
+ .children("a")
+ .removeClass('leaflet-bar-part leaflet-bar-part-single')
+ .addClass('control-button');
+
+ var sidebar = L.OSM.sidebar('#map-ui')
+ .addTo(map);
+
+ L.OSM.layers({
+ position: position,
+ layers: map.baseLayers,
+ sidebar: sidebar
+ }).addTo(map);
+
+ L.OSM.key({
+ position: position,
+ sidebar: sidebar
+ }).addTo(map);
+
+ L.OSM.share({
+ position: position,
+ sidebar: sidebar,
+ short: true
+ }).addTo(map);
+
+ L.OSM.note({
+ position: position,
+ sidebar: sidebar
+ }).addTo(map);
+
+ L.OSM.query({
+ position: position,
+ sidebar: sidebar
+ }).addTo(map);
+
+ L.control.scale()
+ .addTo(map);
+
+ if (OSM.STATUS !== 'api_offline' && OSM.STATUS !== 'database_offline') {
+ OSM.initializeNotes(map);
+ if (params.layers.indexOf(map.noteLayer.options.code) >= 0) {
+ map.addLayer(map.noteLayer);