mirror of
https://github.com/stylersnico/librenms.git
synced 2026-07-12 16:06:25 +02:00
Update leaflet (https://github.com/CloudMade/Leaflet/pull/810)
This commit is contained in:
+167
-83
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2010-2012, CloudMade, Vladimir Agafonkin
|
||||
Leaflet is a modern open-source JavaScript library for interactive maps.
|
||||
Leaflet is an open-source JavaScript library for mobile-friendly interactive maps.
|
||||
http://leaflet.cloudmade.com
|
||||
*/
|
||||
(function (window, undefined) {
|
||||
@@ -336,6 +336,8 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent;
|
||||
ie6 = ie && !window.XMLHttpRequest,
|
||||
webkit = ua.indexOf("webkit") !== -1,
|
||||
gecko = ua.indexOf("gecko") !== -1,
|
||||
//Terrible browser detection to work around a safari / iOS browser bug. See TileLayer._addTile and debug/hacks/jitter.html
|
||||
safari = (ua.indexOf("safari") !== -1 || ua.indexOf("iphone") !== -1 || ua.indexOf("ipad") !== -1) && ua.indexOf("applewebkit") !== -1 && ua.indexOf("chrome") === -1,
|
||||
opera = window.opera,
|
||||
android = ua.indexOf("android") !== -1,
|
||||
android23 = ua.search("android [23]") !== -1,
|
||||
@@ -371,19 +373,11 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent;
|
||||
div = null;
|
||||
|
||||
return supported;
|
||||
}()),
|
||||
ieversion = ie && (function () {
|
||||
var re = new RegExp("msie ([0-9]{1,}[\\.0-9]{0,})");
|
||||
if (re.exec(ua) !== null) {
|
||||
return parseFloat(RegExp.$1);
|
||||
}
|
||||
return null;
|
||||
}());
|
||||
}());
|
||||
|
||||
L.Browser = {
|
||||
ua: ua,
|
||||
ie: ie,
|
||||
iefilter: ie && ieversion < 9,
|
||||
ie6: ie6,
|
||||
webkit: webkit,
|
||||
gecko: gecko,
|
||||
@@ -391,6 +385,8 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent;
|
||||
android: android,
|
||||
android23: android23,
|
||||
|
||||
safari: safari,
|
||||
|
||||
ie3d: ie3d,
|
||||
webkit3d: webkit3d,
|
||||
gecko3d: gecko3d,
|
||||
@@ -724,10 +720,10 @@ L.DomUtil = {
|
||||
},
|
||||
|
||||
setOpacity: function (el, value) {
|
||||
if (L.Browser.iefilter) {
|
||||
el.style.filter += value !== 1 ? 'alpha(opacity=' + Math.round(value * 100) + ')' : '';
|
||||
} else {
|
||||
if ('opacity' in el.style) {
|
||||
el.style.opacity = value;
|
||||
} else if (L.Browser.ie) {
|
||||
el.style.filter += value !== 1 ? 'alpha(opacity=' + Math.round(value * 100) + ')' : '';
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1643,9 +1639,8 @@ L.Map = L.Class.extend({
|
||||
|
||||
L.DomEvent.on(this._container, 'click', this._onMouseClick, this);
|
||||
|
||||
var events = ['dblclick', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'contextmenu'];
|
||||
|
||||
var i, len;
|
||||
var events = ['dblclick', 'mousedown', 'mouseup', 'mouseenter', 'mouseleave', 'mousemove', 'contextmenu'],
|
||||
i, len;
|
||||
|
||||
for (i = 0, len = events.length; i < len; i++) {
|
||||
L.DomEvent.on(this._container, events[i], this._fireMouseEvent, this);
|
||||
@@ -1657,8 +1652,8 @@ L.Map = L.Class.extend({
|
||||
},
|
||||
|
||||
_onResize: function () {
|
||||
// TODO cancel previous frame
|
||||
L.Util.requestAnimFrame(this.invalidateSize, this, false, this._container);
|
||||
L.Util.cancelAnimFrame(this._resizeRequest);
|
||||
this._resizeRequest = L.Util.requestAnimFrame(this.invalidateSize, this, false, this._container);
|
||||
},
|
||||
|
||||
_onMouseClick: function (e) {
|
||||
@@ -2146,7 +2141,8 @@ L.TileLayer = L.Class.extend({
|
||||
|
||||
// get unused tile - or create a new tile
|
||||
var tile = this._getTile();
|
||||
L.DomUtil.setPosition(tile, tilePos, true);
|
||||
//Chrome 20 layouts much faster with top/left (Verify with timeline, frames), Safari 5.1.7 and iOS 5.1.1 have display issues with top/left and requires transform instead. (Other browsers don't currently care)
|
||||
L.DomUtil.setPosition(tile, tilePos, !L.Browser.safari);
|
||||
|
||||
this._tiles[key] = tile;
|
||||
|
||||
@@ -2288,7 +2284,12 @@ L.TileLayer.WMS = L.TileLayer.extend({
|
||||
this._url = url;
|
||||
|
||||
var wmsParams = L.Util.extend({}, this.defaultWmsParams);
|
||||
wmsParams.width = wmsParams.height = this.options.tileSize;
|
||||
|
||||
if (options.detectRetina && window.devicePixelRatio > 1) {
|
||||
wmsParams.width = wmsParams.height = this.options.tileSize * 2;
|
||||
} else {
|
||||
wmsParams.width = wmsParams.height = this.options.tileSize;
|
||||
}
|
||||
|
||||
for (var i in options) {
|
||||
// all keys that are not TileLayer options go to WMS params
|
||||
@@ -2755,7 +2756,8 @@ L.Marker = L.Class.extend({
|
||||
var options = this.options,
|
||||
map = this._map,
|
||||
animation = (map.options.zoomAnimation && map.options.markerZoomAnimation),
|
||||
classToAdd = animation ? 'leaflet-zoom-animated' : 'leaflet-zoom-hide';
|
||||
classToAdd = animation ? 'leaflet-zoom-animated' : 'leaflet-zoom-hide',
|
||||
needOpacityUpdate = false;
|
||||
|
||||
if (!this._icon) {
|
||||
this._icon = options.icon.createIcon();
|
||||
@@ -2765,7 +2767,7 @@ L.Marker = L.Class.extend({
|
||||
}
|
||||
|
||||
this._initInteraction();
|
||||
this._updateOpacity();
|
||||
needOpacityUpdate = true;
|
||||
|
||||
L.DomUtil.addClass(this._icon, classToAdd);
|
||||
}
|
||||
@@ -2774,9 +2776,14 @@ L.Marker = L.Class.extend({
|
||||
|
||||
if (this._shadow) {
|
||||
L.DomUtil.addClass(this._shadow, classToAdd);
|
||||
needOpacityUpdate = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (needOpacityUpdate) {
|
||||
this._updateOpacity();
|
||||
}
|
||||
|
||||
var panes = this._map._panes;
|
||||
|
||||
panes.markerPane.appendChild(this._icon);
|
||||
@@ -2863,8 +2870,11 @@ L.Marker = L.Class.extend({
|
||||
}
|
||||
},
|
||||
|
||||
_updateOpacity: function (opacity) {
|
||||
_updateOpacity: function () {
|
||||
L.DomUtil.setOpacity(this._icon, this.options.opacity);
|
||||
if (this._shadow) {
|
||||
L.DomUtil.setOpacity(this._shadow, this.options.opacity);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -2926,7 +2936,7 @@ L.Popup = L.Class.extend({
|
||||
maxHeight: null,
|
||||
autoPan: true,
|
||||
closeButton: true,
|
||||
offset: new L.Point(0, 2),
|
||||
offset: new L.Point(0, 6),
|
||||
autoPanPadding: new L.Point(5, 5),
|
||||
className: ''
|
||||
},
|
||||
@@ -2945,7 +2955,11 @@ L.Popup = L.Class.extend({
|
||||
}
|
||||
this._updateContent();
|
||||
|
||||
L.DomUtil.setOpacity(this._container, 0);
|
||||
var animFade = map.options.fadeAnimation;
|
||||
|
||||
if (animFade) {
|
||||
L.DomUtil.setOpacity(this._container, 0);
|
||||
}
|
||||
map._panes.popupPane.appendChild(this._container);
|
||||
|
||||
map.on('viewreset', this._updatePosition, this);
|
||||
@@ -2960,7 +2974,9 @@ L.Popup = L.Class.extend({
|
||||
|
||||
this._update();
|
||||
|
||||
L.DomUtil.setOpacity(this._container, 1);
|
||||
if (animFade) {
|
||||
L.DomUtil.setOpacity(this._container, 1);
|
||||
}
|
||||
},
|
||||
|
||||
addTo: function (map) {
|
||||
@@ -2968,6 +2984,11 @@ L.Popup = L.Class.extend({
|
||||
return this;
|
||||
},
|
||||
|
||||
openOn: function (map) {
|
||||
map.openPopup(this);
|
||||
return this;
|
||||
},
|
||||
|
||||
onRemove: function (map) {
|
||||
map._panes.popupPane.removeChild(this._container);
|
||||
|
||||
@@ -2979,7 +3000,9 @@ L.Popup = L.Class.extend({
|
||||
zoomanim: this._zoomAnimation
|
||||
}, this);
|
||||
|
||||
L.DomUtil.setOpacity(this._container, 0);
|
||||
if (map.options.fadeAnimation) {
|
||||
L.DomUtil.setOpacity(this._container, 0);
|
||||
}
|
||||
|
||||
this._map = null;
|
||||
},
|
||||
@@ -3016,6 +3039,7 @@ L.Popup = L.Class.extend({
|
||||
if (this.options.closeButton) {
|
||||
closeButton = this._closeButton = L.DomUtil.create('a', prefix + '-close-button', container);
|
||||
closeButton.href = '#close';
|
||||
closeButton.innerHTML = '×';
|
||||
|
||||
L.DomEvent.on(closeButton, 'click', this._onCloseButtonClick, this);
|
||||
}
|
||||
@@ -3181,7 +3205,7 @@ L.Marker.include({
|
||||
},
|
||||
|
||||
bindPopup: function (content, options) {
|
||||
var anchor = this.options.icon.options.popupAnchor || new L.Point(0, 0);
|
||||
var anchor = L.point(this.options.icon.options.popupAnchor) || new L.Point(0, 0);
|
||||
|
||||
if (options && options.offset) {
|
||||
anchor = anchor.add(options.offset);
|
||||
@@ -3390,7 +3414,11 @@ L.Path = L.Class.extend({
|
||||
statics: {
|
||||
// how much to extend the clip area around the map view
|
||||
// (relative to its size, e.g. 0.5 is half the screen in each direction)
|
||||
CLIP_PADDING: 0.5
|
||||
// set in such way that SVG element doesn't exceed 1280px (vector layers flicker on dragend if it is)
|
||||
CLIP_PADDING: L.Browser.mobile ?
|
||||
Math.max(0, Math.min(0.5,
|
||||
(1280 / Math.max(window.innerWidth, window.innerHeight) - 1) / 2))
|
||||
: 0.5
|
||||
},
|
||||
|
||||
options: {
|
||||
@@ -3578,10 +3606,6 @@ L.Path = L.Path.extend({
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.type === 'contextmenu') {
|
||||
L.DomEvent.preventDefault(e);
|
||||
}
|
||||
|
||||
this._fireMouseEvent(e);
|
||||
},
|
||||
|
||||
@@ -3589,6 +3613,11 @@ L.Path = L.Path.extend({
|
||||
if (!this.hasEventListeners(e.type)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.type === 'contextmenu') {
|
||||
L.DomEvent.preventDefault(e);
|
||||
}
|
||||
|
||||
var map = this._map,
|
||||
containerPoint = map.mouseEventToContainerPoint(e),
|
||||
layerPoint = map.containerPointToLayerPoint(containerPoint),
|
||||
@@ -3682,10 +3711,13 @@ L.Map.include({
|
||||
*/
|
||||
|
||||
L.Path.include({
|
||||
|
||||
bindPopup: function (content, options) {
|
||||
|
||||
if (!this._popup || this._popup.options !== options) {
|
||||
this._popup = new L.Popup(options, this);
|
||||
}
|
||||
|
||||
this._popup.setContent(content);
|
||||
|
||||
if (!this._openPopupAdded) {
|
||||
@@ -3696,6 +3728,18 @@ L.Path.include({
|
||||
return this;
|
||||
},
|
||||
|
||||
openPopup: function (latlng) {
|
||||
|
||||
if (this._popup) {
|
||||
latlng = latlng || this._latlng ||
|
||||
this._latlngs[Math.floor(this._latlngs.length / 2)];
|
||||
|
||||
this._openPopup({latlng: latlng});
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
_openPopup: function (e) {
|
||||
this._popup.setLatLng(e.latlng);
|
||||
this._map.openPopup(this._popup);
|
||||
@@ -3709,13 +3753,17 @@ L.Path.include({
|
||||
*/
|
||||
|
||||
L.Browser.vml = (function () {
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = '<v:shape adj="1"/>';
|
||||
try {
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = '<v:shape adj="1"/>';
|
||||
|
||||
var shape = div.firstChild;
|
||||
shape.style.behavior = 'url(#default#VML)';
|
||||
var shape = div.firstChild;
|
||||
shape.style.behavior = 'url(#default#VML)';
|
||||
|
||||
return shape && (typeof shape.adj === 'object');
|
||||
return shape && (typeof shape.adj === 'object');
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}());
|
||||
|
||||
L.Path = L.Browser.svg || !L.Browser.vml ? L.Path : L.Path.extend({
|
||||
@@ -3829,6 +3877,45 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path :
|
||||
SVG: false
|
||||
},
|
||||
|
||||
redraw: function () {
|
||||
if (this._map) {
|
||||
this.projectLatlngs();
|
||||
this._requestUpdate();
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
setStyle: function (style) {
|
||||
L.Util.setOptions(this, style);
|
||||
|
||||
if (this._map) {
|
||||
this._updateStyle();
|
||||
this._requestUpdate();
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
onRemove: function (map) {
|
||||
map
|
||||
.off('viewreset', this.projectLatlngs, this)
|
||||
.off('moveend', this._updatePath, this);
|
||||
|
||||
this._requestUpdate();
|
||||
|
||||
this._map = null;
|
||||
},
|
||||
|
||||
_requestUpdate: function () {
|
||||
if (this._map) {
|
||||
L.Util.cancelAnimFrame(this._fireMapMoveEnd);
|
||||
this._updateRequest = L.Util.requestAnimFrame(this._fireMapMoveEnd, this._map);
|
||||
}
|
||||
},
|
||||
|
||||
_fireMapMoveEnd: function () {
|
||||
this.fire('moveend');
|
||||
},
|
||||
|
||||
_initElements: function () {
|
||||
this._map._initPathRoot();
|
||||
this._ctx = this._map._canvasCtx;
|
||||
@@ -3910,14 +3997,7 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path :
|
||||
if (this._containsPoint(e.layerPoint)) {
|
||||
this.fire('click', e);
|
||||
}
|
||||
},
|
||||
|
||||
onRemove: function (map) {
|
||||
map
|
||||
.off('viewreset', this._projectLatlngs, this)
|
||||
.off('moveend', this._updatePath, this)
|
||||
.fire('moveend');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
L.Map.include((L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? {} : {
|
||||
@@ -4338,6 +4418,8 @@ L.Polyline = L.Path.extend({
|
||||
},
|
||||
|
||||
_updatePath: function () {
|
||||
if (!this._map) { return; }
|
||||
|
||||
this._clipPoints();
|
||||
this._simplifyPoints();
|
||||
|
||||
@@ -4516,6 +4598,14 @@ L.polygon = function (latlngs, options) {
|
||||
|
||||
L.MultiPolyline = createMulti(L.Polyline);
|
||||
L.MultiPolygon = createMulti(L.Polygon);
|
||||
|
||||
L.multiPolyline = function (latlngs, options) {
|
||||
return new L.MultiPolyline(latlngs, options);
|
||||
};
|
||||
|
||||
L.multiPolygon = function (latlngs, options) {
|
||||
return new L.MultiPolygon(latlngs, options);
|
||||
};
|
||||
}());
|
||||
|
||||
|
||||
@@ -4775,7 +4865,7 @@ L.GeoJSON = L.FeatureGroup.extend({
|
||||
},
|
||||
|
||||
addData: function (geojson) {
|
||||
var features = geojson.features,
|
||||
var features = geojson instanceof Array ? geojson : geojson.features,
|
||||
i, len;
|
||||
|
||||
if (features) {
|
||||
@@ -5259,9 +5349,9 @@ L.Map.mergeOptions({
|
||||
dragging: true,
|
||||
|
||||
inertia: !L.Browser.android23,
|
||||
inertiaDeceleration: L.Browser.touch ? 3000 : 2000, // px/s^2
|
||||
inertiaMaxSpeed: L.Browser.touch ? 1500 : 1000, // px/s
|
||||
inertiaThreshold: L.Browser.touch ? 32 : 16, // ms
|
||||
inertiaDeceleration: 3000, // px/s^2
|
||||
inertiaMaxSpeed: 1500, // px/s
|
||||
inertiaThreshold: L.Browser.touch ? 32 : 14, // ms
|
||||
|
||||
// TODO refactor, move to CRS
|
||||
worldCopyJump: true,
|
||||
@@ -6074,7 +6164,9 @@ L.Control = L.Class.extend({
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
L.control = function (options) {
|
||||
return new L.Control(options);
|
||||
};
|
||||
|
||||
L.Map.include({
|
||||
addControl: function (control) {
|
||||
@@ -6148,6 +6240,10 @@ L.Map.addInitHook(function () {
|
||||
}
|
||||
});
|
||||
|
||||
L.control.zoom = function (options) {
|
||||
return new L.Control.Zoom(options);
|
||||
};
|
||||
|
||||
L.Control.Attribution = L.Control.extend({
|
||||
options: {
|
||||
position: 'bottomright',
|
||||
@@ -6223,7 +6319,7 @@ L.Control.Attribution = L.Control.extend({
|
||||
prefixAndAttribs.push(attribs.join(', '));
|
||||
}
|
||||
|
||||
this._container.innerHTML = prefixAndAttribs.join(' — ');
|
||||
this._container.innerHTML = prefixAndAttribs.join(' — ');
|
||||
},
|
||||
|
||||
_onLayerAdd: function (e) {
|
||||
@@ -6249,6 +6345,10 @@ L.Map.addInitHook(function () {
|
||||
}
|
||||
});
|
||||
|
||||
L.control.attribution = function (options) {
|
||||
return new L.Control.Attribution(options);
|
||||
};
|
||||
|
||||
L.Control.Scale = L.Control.extend({
|
||||
options: {
|
||||
position: 'bottomleft',
|
||||
@@ -6285,16 +6385,15 @@ L.Control.Scale = L.Control.extend({
|
||||
_update: function () {
|
||||
var bounds = this._map.getBounds(),
|
||||
centerLat = bounds.getCenter().lat,
|
||||
|
||||
left = new L.LatLng(centerLat, bounds.getSouthWest().lng),
|
||||
right = new L.LatLng(centerLat, bounds.getNorthEast().lng),
|
||||
halfWorldMeters = new L.LatLng(centerLat, 0).distanceTo(new L.LatLng(centerLat, 180)),
|
||||
dist = halfWorldMeters * (bounds.getNorthEast().lng - bounds.getSouthWest().lng) / 180,
|
||||
|
||||
size = this._map.getSize(),
|
||||
options = this.options,
|
||||
maxMeters = 0;
|
||||
maxMeters = 0;
|
||||
|
||||
if (size.x > 0) {
|
||||
maxMeters = left.distanceTo(right) * (options.maxWidth / size.x);
|
||||
maxMeters = dist * (options.maxWidth / size.x);
|
||||
}
|
||||
|
||||
if (options.metric && maxMeters) {
|
||||
@@ -6341,12 +6440,15 @@ L.Control.Scale = L.Control.extend({
|
||||
var pow10 = Math.pow(10, (Math.floor(num) + '').length - 1),
|
||||
d = num / pow10;
|
||||
|
||||
d = d >= 10 ? 10 : d >= 5 ? 5 : d >= 2 ? 2 : 1;
|
||||
d = d >= 10 ? 10 : d >= 5 ? 5 : d >= 3 ? 3 : d >= 2 ? 2 : 1;
|
||||
|
||||
return pow10 * d;
|
||||
}
|
||||
});
|
||||
|
||||
L.control.scale = function (options) {
|
||||
return new L.Control.Scale(options);
|
||||
};
|
||||
|
||||
|
||||
L.Control.Layers = L.Control.extend({
|
||||
@@ -6523,6 +6625,9 @@ L.Control.Layers = L.Control.extend({
|
||||
}
|
||||
});
|
||||
|
||||
L.control.layers = function (options) {
|
||||
return new L.Control.Layers(options);
|
||||
};
|
||||
|
||||
L.Transition = L.Class.extend({
|
||||
includes: L.Mixin.Events,
|
||||
@@ -6692,11 +6797,8 @@ L.Transition = L.Transition.NATIVE ? L.Transition : L.Transition.extend({
|
||||
TIMER: true,
|
||||
|
||||
EASINGS: {
|
||||
'ease': [0.25, 0.1, 0.25, 1.0],
|
||||
'linear': [0.0, 0.0, 1.0, 1.0],
|
||||
'ease-in': [0.42, 0, 1.0, 1.0],
|
||||
'ease-out': [0, 0, 0.58, 1.0],
|
||||
'ease-in-out': [0.42, 0, 0.58, 1.0]
|
||||
'linear': function (t) { return t; },
|
||||
'ease-out': function (t) { return t * (2 - t); }
|
||||
},
|
||||
|
||||
CUSTOM_PROPS_GETTERS: {
|
||||
@@ -6715,12 +6817,7 @@ L.Transition = L.Transition.NATIVE ? L.Transition : L.Transition.extend({
|
||||
this._el = el;
|
||||
L.Util.extend(this.options, options);
|
||||
|
||||
var easings = L.Transition.EASINGS[this.options.easing] || L.Transition.EASINGS.ease;
|
||||
|
||||
this._p1 = new L.Point(0, 0);
|
||||
this._p2 = new L.Point(easings[0], easings[1]);
|
||||
this._p3 = new L.Point(easings[2], easings[3]);
|
||||
this._p4 = new L.Point(1, 1);
|
||||
this._easing = L.Transition.EASINGS[this.options.easing] || L.Transition.EASINGS['ease-out'];
|
||||
|
||||
this._step = L.Util.bind(this._step, this);
|
||||
this._interval = Math.round(1000 / this.options.fps);
|
||||
@@ -6760,7 +6857,7 @@ L.Transition = L.Transition.NATIVE ? L.Transition : L.Transition.extend({
|
||||
duration = this.options.duration * 1000;
|
||||
|
||||
if (elapsed < duration) {
|
||||
this._runFrame(this._cubicBezier(elapsed / duration));
|
||||
this._runFrame(this._easing(elapsed / duration));
|
||||
} else {
|
||||
this._runFrame(1);
|
||||
this._complete();
|
||||
@@ -6789,19 +6886,6 @@ L.Transition = L.Transition.NATIVE ? L.Transition : L.Transition.extend({
|
||||
_complete: function () {
|
||||
clearInterval(this._timer);
|
||||
this.fire('end');
|
||||
},
|
||||
|
||||
_cubicBezier: function (t) {
|
||||
var a = Math.pow(1 - t, 3),
|
||||
b = 3 * Math.pow(1 - t, 2) * t,
|
||||
c = 3 * (1 - t) * Math.pow(t, 2),
|
||||
d = Math.pow(t, 3),
|
||||
p1 = this._p1.multiplyBy(a),
|
||||
p2 = this._p2.multiplyBy(b),
|
||||
p3 = this._p3.multiplyBy(c),
|
||||
p4 = this._p4.multiplyBy(d);
|
||||
|
||||
return p1.add(p2).add(p3).add(p4).y;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
.leaflet-popup-tip-container {
|
||||
margin: 0 auto;
|
||||
width: 40px;
|
||||
height: 16px;
|
||||
height: 20px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -305,15 +305,21 @@
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.leaflet-popup-close-button {
|
||||
.leaflet-container a.leaflet-popup-close-button {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
right: 8px;
|
||||
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
|
||||
overflow: hidden;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 4px 5px 0 0;
|
||||
text-align: center;
|
||||
width: 18px;
|
||||
height: 14px;
|
||||
font: 16px/14px Tahoma, Verdana, sans-serif;
|
||||
color: #c3c3c3;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button:hover {
|
||||
color: #999;
|
||||
}
|
||||
.leaflet-popup-content p {
|
||||
margin: 18px 0;
|
||||
@@ -362,7 +368,4 @@
|
||||
}
|
||||
.leaflet-popup-content {
|
||||
font: 12px/1.4 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.leaflet-popup-close-button {
|
||||
background: white url(images/popup-close.png);
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user