0

我正在尝试为我创建的几个 CircleMarkers 添加一个静态标签。这些标记被添加到 LayerGroup,然后添加到地图中。我已经读过,在将 .showLabel() 添加到地图的对象后,我需要调用它。但由于我先构建 LayerGroup,然后将其添加到地图中,我不确定如何执行此操作。

我考虑过使用 L.LayerGroup.eachLayer 但我不确定我实际上会在哪个对象上调用 .showLayers() 。我的代码如下,感谢任何帮助,谢谢!

  var jsonLayers = new L.LayerGroup();  

  jsonLayers.addLayer(L.geoJson(mapFeature.features[i], {
          style: function (feature) {
                   return feature.properties && feature.properties.style;
          },

          onEachFeature: onEachFeature,

          pointToLayer: function (feature, latlng) {
                    var newCircle = L.circleMarker(latlng, {
                          radius: 5,
                          fillColor: fColor,
                          color: "#000",
                          weight: 1,
                          opacity: 1,
                          fillOpacity: 0.8
                  });                                                      

                  newCircle.bindLabel(feature.properties.name, { noHide: true });                                                                                                                
                  return newCircle;
    }
  }));

  map.addLayer(jsonLayers);
4

1 回答 1

1

事实证明,CircleMarkers 不支持静态标签。为了解决这个问题,我向 Leaflet.label 添加了代码以允许这样做。我还发出了拉取请求,以防其他人想做我正在做的事情。

于 2013-07-24T13:49:43.183 回答