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

Add custom icons to Leaflet Draw toolbar

注意: 类似于 post 到 change default icon toolbar (Leaflet)

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

Leaflet draw toolbar

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

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: '...'
                  }
              ];
          }
      });

正如你所看到的 here 和检查元素有这个 CSS 属性 :

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

Spritesheet 是:

您可以简单地在您想要的 a 元素上使用图标的 URL 编辑 background-image: url();(多边形一的示例):

.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;
}

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