0

我有一张 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 类不适用于多面体的弹出窗口,因此我得到了本机弹出窗口。如果我在浏览器中手动更改类 - 没关系。

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

有谁知道是什么问题?

4

1 回答 1

0

有谁知道是什么问题?

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

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

在我看来,您有两种可能性:

  1. fork 传单并将 className 选项添加到多边形
  2. 通过重载 bindPopup 使子类继承多边形以 className 作为选项
于 2013-06-10T16:15:24.927 回答