有很多提及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,而且没有标签。感谢您提供的任何帮助。
答案 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});
},