2013-09-04 3 views
3

Существует множество ссылок на leaflet.label, работающих отлично с точками GeoJSON, но я еще не нашел один пример.
Вот что я пытался до сих пор:с использованием 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 по умолчанию, и без ярлыков. Спасибо за любую помощь, которую вы можете предоставить.

ответ

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}); 
}, 
+0

Binding напрямую работал на меня. Благодарю. – JasonRDalton

Смежные вопросы