2013-07-22 6 views
0

Я пытаюсь добавить статическую метку в несколько созданных мной CircleMarkers. Эти маркеры добавляются в LayerGroup, а затем добавляются на карту. Я прочитал, что мне нужно вызвать .showLabel() после того, как я добавил его к объекту на карте. Но поскольку я сначала создаю LayerGroup, а затем добавляю его на карту, я не знаю, как это сделать.Как отображать листовые статические метки для объектов в 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); 
+0

При попытке: jsonLayers.eachLayer (функция (слой) { layer.showLabel();} ); Я получаю сообщение об ошибке, которое showLabel не является функцией. – alecdhuse

+0

Согласно https://github.com/Leaflet/Leaflet.label/issues/31, похоже, для CircleMarker это не поддерживается. – alecdhuse

+0

Вы видели https://github.com/Leaflet/Leaflet.label? – gibbocool

ответ

1

Оказалось, что статические метки не поддерживаются на CircleMarkers. Чтобы решить эту проблему, я добавил код в Leaflet.label, чтобы это разрешить. Я также выпустил pull request на случай, если кто-то еще захочет сделать то же самое, что и я.