Ich bin ziemlich neu in der Leaflet-Bibliothek und im Allgemeinen JavaScript, und ich stehe fest, herauszufinden, wie man eine Broschüre anhand der Zoomstufe anzeigen/verbergen kann (und die Markierungen befinden sich in einem "Cluster") Schicht).Wie zeige ich ein Label über eine bestimmte Zoomstufe in Leaflet hinaus?
Die Marker werden alle über AJAX-Callback geladen und dann binde ich das Popup und Label mit der , dann füge ich die Ebene der geoJson Marker zur Karte hinzu.
Ich möchte nur die Etiketten zeigen, wenn auf eine Ebene gezoomt, aber ich hatte kein Glück. Ich habe auch versucht, die leaflet.zoomcss.js
hinzuzufügen, aber ich denke, ich verwende das nicht richtig.
Probe
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'});
}
}
ich auch es so versucht haben, das Hinzufügen, aber das hat nicht funktioniert entweder:
layer.on({
zoomend: showLabel(e)
});
und dann eine schnelle Nummer Funktion:
function showLabel(e) {
z = map.getZoom();
if (z > 6) {
layer.bindLabel("HIYA", { noHide: true, className: 'my-css-styled-labels' });
}
}
Aber kein Glück, auch wenn Sie die Bibliothek und CSS-Stile fürhinzufügen
Sorry für lang, aber jede Hilfe würde wirklich geschätzt werden!
Nicht sicher, was der Mehrwert zu meinem Beitrag oben ist, außer dass Ihre nur mit einer bestimmten GeoJson-Ebene funktioniert, während meine auf Karten mit jeder Art und Anzahl von Schichten funktioniert. –