Jestem całkiem nowy w bibliotece ulotek i ogólnie w JavaScript i utknąłem próbując dowiedzieć się, jak pokazać/ukryć etykietę ulotki na podstawie poziomu powiększenia (a znaczniki są w "klastrze" warstwa). WszystkieJak wyświetlić etykietę przekraczającą pewien poziom powiększenia w ulotce?
Znaczniki są ładowane za pośrednictwem AJAX zwrotnego, a następnie powiązać okienko i etykietę za pomocą onEachFeature
, a następnie dodać warstwę markerów GeoJSON mapy.
Chciałbym pokazać etykiety tylko po powiększeniu do pewnego poziomu, ale nie miałem szczęścia. Próbowałem również dodać leaflet.zoomcss.js
, ale myślę, że nie używam tego poprawnie.
Próbka
var officesLayerGroup = L.markerClusterGroup();
var currentMakers;
function DiaplyLocalOffices(jqOffices) {
currentMakers = new L.geoJson(jqOffices, {
style: function (feature) {
var c = feature.properties.markercolor;
if (feature.properties.OfficeID == 0) {
c = 'yellow';
}
return { color: c };
},
pointToLayer: function (feature, latlng) {
return new L.CircleMarker(latlng, { radius: 7, fillOpacity: 0.5 });
},
onEachFeature: bindOfficePopup
});
officesLayerGroup.addLayer(currentMakers);
map.addLayer(officesLayerGroup);
}
function bindOfficePopup(feature, layer) {
// This function adds the popup based on the information in the 'layer' or marker
// Keep track of the layer(marker)
feature.layer = layer;
var props = feature.properties;
if (props) {
var desc = '<span id="feature-popup">';
//.. a bunch of other html added here!
var warn = props.Warning ? props.Warning : null;
if (warn !== null) {
desc += '<font size="4" color="red"><strong><em>' + warn + '</em></strong></font></br>';
}
desc += '</span>';
layer.bindPopup(desc);
layer.bindLabel('Hi Label!', { noHide: true, className: 'my-css-styled-labels'});
}
}
Próbowałem zostały również dodanie go w ten sposób, ale to nie działa albo:
layer.on({
zoomend: showLabel(e)
});
a następnie funkcję quickie:
function showLabel(e) {
z = map.getZoom();
if (z > 6) {
layer.bindLabel("HIYA", { noHide: true, className: 'my-css-styled-labels' });
}
}
Ale bez powodzenia, nawet przy dodawaniu biblioteki i stylów CSS do leaflet.zoomcss.js
Przepraszamy za długotrwałość, ale każda pomoc będzie naprawdę doceniona!
Nie wiesz, jaka jest wartość dodana jest do mojego postu powyżej, oprócz tego, że działa tylko ciebie tylko z jednej konkretnej warstwy GeoJSON, natomiast kopalnia działa na mapach z wszelkiego rodzaju i liczby warstw. –