3

有很多参考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,并且没有标签。感谢您的任何帮助,您可以提供。

4

1 回答 1

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});
},
于 2013-09-05T11:59:04.253 回答