我希望能够在创建 DivIcon 时在其上设置 css 样式。
目前你只能配置一个 css 类。
用例:
我有一个定义标记图标形状的 css 类,但是图标的颜色是根据数据库中的数据动态设置的,因此不能在 css 类中进行硬编码。
你好,
图标的颜色是什么意思? 我在 css 中设置了 background-color 并且 DivIcon 改变了颜色
这不是你需要的吗? 你能更具体一点吗?
嗨@samik88 ,
正如我在用例中指定的那样,标记图标的颜色(RGB 颜色代码)是从带有标记坐标的数据库中检索的,因此无法在 css 类中定义它(这样做将涉及创建 16777215 css 类(每个 rgb 颜色代码一个,不包括不透明度),这将是一件愚蠢的事情)。
您可以通过添加一个文本字段来更改示例以查看用例,您可以为标记输入 rgb 颜色,然后您会发现您无法在 DivIcon 上设置它,因此无法更改标记图标颜色。
要做到这一点将涉及能够在生成的 DIV 上设置 css 样式属性
此功能可以由L.Marker
的getElement()
方法覆盖,例如:
var marker = new L.Marker(myCenter, {
icon: L.divIcon()
});
map.addLayer(marker);
marker.getElement().style.border = '5px dotted lime';
marker.getElement().style.width = '50px';
marker.getElement().style.height = '50px';
请参阅一个工作示例。
这是一种边缘情况,所以我宁愿建议扩展L.DivIcon
类以添加一些自定义样式,阅读有关编写插件的教程。 它会是这样的
L.DivIcon.CustomColor = L.DivIcon.extend({
createIcon: function(oldIcon) {
var icon = L.DivIcon.prototype.createIcon.call(this, oldIcon);
icon.style.backgroundColor = this.options.color;
return icon;
}
})
我个人认为这不会是一个广泛使用的功能,所以我现在将关闭它。
最有用的评论
此功能可以由
L.Marker
的getElement()
方法覆盖,例如:请参阅一个工作示例。
这是一种边缘情况,所以我宁愿建议扩展
L.DivIcon
类以添加一些自定义样式,阅读有关编写插件的教程。 它会是这样的我个人认为这不会是一个广泛使用的功能,所以我现在将关闭它。