1

我有一张带有 tileLayer 和标记的 Leaflet 地图。我想添加一个图像叠加层来为瓷砖添加一些效果和样式。

L.imageOverlay 很好,但它需要边界,而我想将图像锚定到渲染地图的绝对像素。例如,具有向缩放级别连续的效果。

应该可以通过每次获取范围并重新定义图层的边界来做到这一点,但这很荒谬,因为这些需要在内部转换为绝对值。尽管如此,我还是找不到通过阅读 API 的方法。

您可以在地图顶部成像框架、褪色等内容。

4

2 回答 2

2

You could use a control and a div to manipulate the image. Not sure if this helps.

var legend2 = L.control({position: 'topleft'}); 
legend2.onAdd = function (map) {        
    var div = L.DomUtil.create('div', 'info legend2');
    div.innerHTML = '<img src="https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png" style="transform: matrix3d(-0.509677, 0.655299, 0, -0.000417152, 0.597349, 0.564009, 0, 0.000111701, 0, 0, 1, 0, 0, 0, 0, 1); ">';     
    return div;
};      
legend2.addTo(map);
于 2015-09-02T10:58:25.987 回答
0

做一些阅读作为添加水印对我们很有用。Leaflet.spin.js 调用的核心 Spin.js 库的介绍提到了这一点:

spin() 方法创建必要的 HTML 元素并启动动画。如果将目标元素作为参数传递,则微调器将作为第一个子元素添加并水平和垂直居中。

因此,当 this._spinner = new Spinner().spin(this._container);为正在加载的图层调用时,图层大小以像素为单位确定。它固定在 DOM 中,而不是传单层中。

于 2013-06-04T05:01:45.097 回答