【问题标题】:Leaflet Multipolygon custom popupLeaflet Multipolygon 自定义弹出窗口
【发布时间】:2023-04-08 18:34:01
【问题描述】:

我有一张 OSM 地图,我正在使用 Leafletjs。

我已经为标记创建了我的自定义弹出窗口。它工作正常。

marker.bindPopup(strMsg,{className: 'myPopup'});

这段代码完美运行。

现在,我想创建一个相同的弹出窗口,但单击 Multilopygon。多边形的数据来自 geoJSON。这是我为这个问题写的代码

var c_park = L.geoJson(data[i].geom, {
            style: myStyle
            });
           c_park.bindPopup("strMsg",{className: 'myPopup'});
           map.addLayer(c_park);

问题是 myPopup 类不适用于多面体的弹出窗口,因此我得到了本机弹出窗口。如果我在浏览器中手动更改类 - 没关系。

我尝试了不同的方法。 F.e.使用函数 onEachFeature 来初始化弹出窗口。但没有任何效果。

有人知道是什么问题吗?

【问题讨论】:

    标签: popup leaflet geojson


    【解决方案1】:

    有人知道是什么问题吗?

    没有问题。标记支持 ClassName 作为 L.icon 的选项。 (docs)。

    Polygon 继承了 polyline 和 path 的选项,不包括 ClassName (docs)。

    在我看来你有两种可能:

    1. fork 传单并将 className 选项添加到多边形
    2. 通过重载bindPopup,创建一个继承多边形的子类,以className为选项

    【讨论】:

    • 谢谢。我通过在 leaflet.css 中重载 css 类解决了我的问题
    • 这是个好主意! (我想我会在我的项目中使用它:))
    猜你喜欢
    • 2015-07-15
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多