使用Leaflet.Label和GeoJSON点

时间:2013-09-04 12:56:27

标签: leaflet

有很多提及leaflet.label的GeoJSON点工作正常,但我还没有找到一个例子。
这是我到目前为止所尝试的内容:

//Add labels layer
var labelStyle = {
    color: '#CCC',
    opacity: 1
};

var labelMarkerOptions = {
        opacity: 0,
        fillOpacity: 0
};

var labelLayer = L.geoJson(labels, {
        pointToLayer: function (feature, latlng) {
                return L.Marker(latlng, labelMarkerOptions);
        },
        onEachFeature: function (feature, layer) {
                layer.bindLabel(feature.properties.Name, {noHide:true});
        }
});
labelLayer.eachLayer(function(l) {l.showLabel();});
map.addLayer(labelLayer);
layerControl.addOverlay(labelLayer, 'Site Labels');

这会增加一层我的点数,但是使用默认的larkers,而且没有标签。感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:3)

如果您只想显示标签,请返回L.circleMarker而不是L.Marker

pointToLayer: function (feature, latlng) {
    return L.circleMarker(latlng, labelMarkerOptions);
},

如果由于其他原因需要L.Marker,请将标签直接绑定到标记:

pointToLayer: function (feature, latlng) {
    return L.Marker(latlng, labelMarkerOptions).bindLabel(feature.properties.Name, {noHide:true});
},