kopia lustrzana https://github.com/projecthorus/chasemapper
65 wiersze
2.0 KiB
JavaScript
65 wiersze
2.0 KiB
JavaScript
![]() |
(function (window, document, undefined) {
|
||
|
L.Control.Custom = L.Control.extend({
|
||
|
version: '1.0.1',
|
||
|
options: {
|
||
|
position: 'topright',
|
||
|
id: '',
|
||
|
title: '',
|
||
|
classes: '',
|
||
|
content: '',
|
||
|
style: {},
|
||
|
datas: {},
|
||
|
events: {},
|
||
|
},
|
||
|
container: null,
|
||
|
onAdd: function (map) {
|
||
|
this.container = L.DomUtil.create('div');
|
||
|
this.container.id = this.options.id;
|
||
|
this.container.title = this.options.title;
|
||
|
this.container.className = this.options.classes;
|
||
|
this.container.innerHTML = this.options.content;
|
||
|
|
||
|
for (var option in this.options.style)
|
||
|
{
|
||
|
this.container.style[option] = this.options.style[option];
|
||
|
}
|
||
|
|
||
|
for (var data in this.options.datas)
|
||
|
{
|
||
|
this.container.dataset[data] = this.options.datas[data];
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Prevent click events propagation to map */
|
||
|
L.DomEvent.disableClickPropagation(this.container);
|
||
|
|
||
|
/* Prevent right click event propagation to map */
|
||
|
L.DomEvent.on(this.container, 'contextmenu', function (ev)
|
||
|
{
|
||
|
L.DomEvent.stopPropagation(ev);
|
||
|
});
|
||
|
|
||
|
/* Prevent scroll events propagation to map when cursor on the div */
|
||
|
L.DomEvent.disableScrollPropagation(this.container);
|
||
|
|
||
|
for (var event in this.options.events)
|
||
|
{
|
||
|
L.DomEvent.on(this.container, event, this.options.events[event], this.container);
|
||
|
}
|
||
|
|
||
|
return this.container;
|
||
|
},
|
||
|
|
||
|
onRemove: function (map) {
|
||
|
for (var event in this.options.events)
|
||
|
{
|
||
|
L.DomEvent.off(this.container, event, this.options.events[event], this.container);
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
|
||
|
L.control.custom = function (options) {
|
||
|
return new L.Control.Custom(options);
|
||
|
};
|
||
|
|
||
|
}(window, document));
|