Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
89 righe
2.2 KiB
89 righe
2.2 KiB
2 anni fa
|
|
||
|
(function(root, factory) {
|
||
|
if (typeof define === 'function' && define.amd) {
|
||
|
define(["leaflet"], factory);
|
||
|
} else if (typeof exports === 'object') {
|
||
|
module.exports = factory(require('leaflet'));
|
||
|
} else {
|
||
|
root.L.Control.DefaultExtent = factory(root.L);
|
||
|
}
|
||
|
}(this, function(L) {
|
||
|
|
||
|
return (function () {
|
||
|
/* global L */
|
||
|
'use strict';
|
||
|
L.Control.DefaultExtent = L.Control.extend({
|
||
|
options: {
|
||
|
position: 'topleft',
|
||
|
text: 'Default Extent',
|
||
|
title: 'Zoom to default extent',
|
||
|
className: 'leaflet-control-defaultextent'
|
||
|
},
|
||
|
onAdd: function (map) {
|
||
|
this._map = map;
|
||
|
return this._initLayout();
|
||
|
},
|
||
|
setCenter: function (center) {
|
||
|
this._center = center;
|
||
|
return this;
|
||
|
},
|
||
|
setZoom: function (zoom) {
|
||
|
this._zoom = zoom;
|
||
|
return this;
|
||
|
},
|
||
|
_initLayout: function () {
|
||
|
var container = L.DomUtil.create('div', 'leaflet-bar ' +
|
||
|
this.options.className);
|
||
|
this._container = container;
|
||
|
this._fullExtentButton = this._createExtentButton(container);
|
||
|
|
||
|
L.DomEvent.disableClickPropagation(container);
|
||
|
|
||
|
this._map.whenReady(this._whenReady, this);
|
||
|
|
||
|
return this._container;
|
||
|
},
|
||
|
_createExtentButton: function () {
|
||
|
var link = L.DomUtil.create('a', this.options.className + '-toggle',
|
||
|
this._container);
|
||
|
link.href = '#';
|
||
|
link.innerHTML = this.options.text;
|
||
|
link.title = this.options.title;
|
||
|
|
||
|
L.DomEvent
|
||
|
.on(link, 'mousedown dblclick', L.DomEvent.stopPropagation)
|
||
|
.on(link, 'click', L.DomEvent.stop)
|
||
|
.on(link, 'click', this._zoomToDefault, this);
|
||
|
return link;
|
||
|
},
|
||
|
_whenReady: function () {
|
||
|
if (!this._center) {
|
||
|
this._center = this._map.getCenter();
|
||
|
}
|
||
|
if (!this._zoom) {
|
||
|
this._zoom = this._map.getZoom();
|
||
|
}
|
||
|
return this;
|
||
|
},
|
||
|
_zoomToDefault: function () {
|
||
|
this._map.setView(this._center, this._zoom);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
L.Map.addInitHook(function () {
|
||
|
if (this.options.defaultExtentControl) {
|
||
|
this.addControl(new L.Control.DefaultExtent());
|
||
|
}
|
||
|
});
|
||
|
|
||
|
L.control.defaultExtent = function (options) {
|
||
|
return new L.Control.DefaultExtent(options);
|
||
|
};
|
||
|
|
||
|
return L.Control.DefaultExtent;
|
||
|
|
||
|
}());
|
||
|
;
|
||
|
|
||
|
}));
|