Create osm-specific locate control class
This commit is contained in:
parent
3e46c7c87d
commit
12a7c9d023
2 changed files with 31 additions and 23 deletions
|
@ -2,6 +2,7 @@
|
||||||
//= require leaflet.sidebar
|
//= require leaflet.sidebar
|
||||||
//= require leaflet.sidebar-pane
|
//= require leaflet.sidebar-pane
|
||||||
//= require leaflet.locatecontrol/src/L.Control.Locate
|
//= require leaflet.locatecontrol/src/L.Control.Locate
|
||||||
|
//= require leaflet.locate
|
||||||
//= require leaflet.layers
|
//= require leaflet.layers
|
||||||
//= require leaflet.key
|
//= require leaflet.key
|
||||||
//= require leaflet.note
|
//= require leaflet.note
|
||||||
|
@ -98,34 +99,15 @@ $(document).ready(function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var sidebar = L.OSM.sidebar("#map-ui")
|
||||||
|
.addTo(map);
|
||||||
|
|
||||||
var position = $("html").attr("dir") === "rtl" ? "topleft" : "topright";
|
var position = $("html").attr("dir") === "rtl" ? "topleft" : "topright";
|
||||||
|
|
||||||
L.OSM.zoom({ position: position })
|
L.OSM.zoom({ position: position })
|
||||||
.addTo(map);
|
.addTo(map);
|
||||||
|
|
||||||
var locate = L.control.locate({
|
L.OSM.locate({ position: position })
|
||||||
position: position,
|
|
||||||
icon: "icon geolocate",
|
|
||||||
iconLoading: "icon geolocate",
|
|
||||||
strings: {
|
|
||||||
title: I18n.t("javascripts.map.locate.title"),
|
|
||||||
popup: function (options) {
|
|
||||||
return I18n.t("javascripts.map.locate." + options.unit + "Popup", { count: options.distance });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).addTo(map);
|
|
||||||
|
|
||||||
var locateContainer = locate.getContainer();
|
|
||||||
|
|
||||||
$(locateContainer)
|
|
||||||
.removeClass("leaflet-control-locate leaflet-bar")
|
|
||||||
.addClass("control-locate")
|
|
||||||
.children("a")
|
|
||||||
.attr("href", "#")
|
|
||||||
.removeClass("leaflet-bar-part leaflet-bar-part-single")
|
|
||||||
.addClass("control-button");
|
|
||||||
|
|
||||||
var sidebar = L.OSM.sidebar("#map-ui")
|
|
||||||
.addTo(map);
|
.addTo(map);
|
||||||
|
|
||||||
L.OSM.layers({
|
L.OSM.layers({
|
||||||
|
|
26
app/assets/javascripts/leaflet.locate.js
Normal file
26
app/assets/javascripts/leaflet.locate.js
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
L.OSM.locate = function (options) {
|
||||||
|
var control = L.control.locate(Object.assign({
|
||||||
|
icon: "icon geolocate",
|
||||||
|
iconLoading: "icon geolocate",
|
||||||
|
strings: {
|
||||||
|
title: I18n.t("javascripts.map.locate.title"),
|
||||||
|
popup: function (options) {
|
||||||
|
return I18n.t("javascripts.map.locate." + options.unit + "Popup", { count: options.distance });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, options));
|
||||||
|
|
||||||
|
control.onAdd = function (map) {
|
||||||
|
var container = Object.getPrototypeOf(this).onAdd.apply(this, [map]);
|
||||||
|
$(container)
|
||||||
|
.removeClass("leaflet-control-locate leaflet-bar")
|
||||||
|
.addClass("control-locate")
|
||||||
|
.children("a")
|
||||||
|
.attr("href", "#")
|
||||||
|
.removeClass("leaflet-bar-part leaflet-bar-part-single")
|
||||||
|
.addClass("control-button");
|
||||||
|
return container;
|
||||||
|
};
|
||||||
|
|
||||||
|
return control;
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue