Tôi khá mới đối với thư viện Leaflet và JavaScript nói chung và tôi đang cố gắng tìm cách hiển thị/ẩn Nhãn tờ rơi dựa trên mức thu phóng (và các điểm đánh dấu nằm trong 'cụm' lớp).Làm cách nào để hiển thị nhãn vượt quá mức thu phóng nhất định trong Leaflet?
Các điểm đánh dấu đều được tải qua gọi lại AJAX và sau đó tôi ràng buộc cửa sổ bật lên và nhãn bằng cách sử dụng onEachFeature
, sau đó tôi thêm lớp dấu geoJson vào bản đồ.
Tôi muốn chỉ hiển thị các nhãn khi phóng to đến một mức nào đó, nhưng tôi chưa có bất kỳ may mắn nào. Tôi cũng đã thử thêm leaflet.zoomcss.js
nhưng tôi đoán tôi không sử dụng chính xác.
mẫu
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'});
}
}
Tôi cũng đã thử thêm nó như thế này nhưng điều đó không làm việc, hoặc:
layer.on({
zoomend: showLabel(e)
});
và sau đó một hàm quickie:
function showLabel(e) {
z = map.getZoom();
if (z > 6) {
layer.bindLabel("HIYA", { noHide: true, className: 'my-css-styled-labels' });
}
}
Nhưng không may mắn, ngay cả khi thêm thư viện và kiểu CSS cho leaflet.zoomcss.js
Xin lỗi vì đã lâu, nhưng mọi trợ giúp sẽ thực sự được đánh giá cao!
Không chắc chắn về giá trị gia tăng là bài của tôi ở trên, ngoại trừ việc bạn chỉ hoạt động chỉ với một lớp GeoJSON cụ thể, trong khi tôi làm việc trên bản đồ với bất kỳ loại và số lượng lớp. –