将自定义图标添加到Leaflet Draw工具栏

Jon*_*sen 2 leaflet leaflet.draw

注意:模拟张贴可更改默认图标工具栏(Leaflet)

大家好。我正在尝试为传单Draw工具栏添加自定义图标。但我似乎无法弄清楚如何。

宣传单绘制工具栏

如图所示,我有两个标记。目的是更改工具栏中的图标之一。我的代码如下:

L.DrawToolbar.include({
          getModeHandlers: function (map) {
              return [          
                  {
                      enabled: true,
                      handler: new L.Draw.Polyline(map, { metric: true, repeatMode: true }),
                      title: '...'
                  },
                  {
                      enabled: true,
                      handler: new L.Draw.Polygon(map, { allowIntersection: false, showArea: true, metric: true, repeatMode: false }),
                      title: '...'
                  },
                  {
                      enabled: true,
                      handler: new L.Draw.Marker(map, { icon: new L.Icon.Default() }),
                      title: '...'
                  },
                  {
                      enabled: true,
                      handler: new L.Draw.Marker(map, { icon: new L.Icon.Default() }),
                      title: '...'
                  }
              ];
          }
      });
Run Code Online (Sandbox Code Playgroud)

Bap*_*ste 5

如您在这里用inspect元素所见,有这个CSS属性:

.leaflet-draw-toolbar a {
    background-image: url(images/spritesheet.png);
    background-repeat: no-repeat;
}
Run Code Online (Sandbox Code Playgroud)

Spritesheet是:

精灵表

您只需background-image: url();在所需的a元素上使用图标的URL进行编辑(例如,多边形1):

.leaflet-draw-toolbar .leaflet-draw-draw-polygon {
    background: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><circle cx='5' cy='5' r='5' /></svg>) no-repeat;
    background-color: #FFF;
}
Run Code Online (Sandbox Code Playgroud)

您可以添加SVG,图像或内容。