Đây là một triển khai theo đề xuất của @BradHards về việc sử dụng permanent
tùy chọn cho tooltip. Các opacity
tùy chọn mất dần cả văn bản và chứa nền không kém.
var data_points = {
"type": "FeatureCollection",
"name": "test-points-short-named",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{ "type": "Feature", "properties": { "name": "1" }, "geometry": { "type": "Point", "coordinates": [ -135.02507178240552, 60.672508785052223 ] } },
{ "type": "Feature", "properties": { "name": "6"}, "geometry": { "type": "Point", "coordinates": [ -135.02480935075292, 60.672888247036376 ] } },
{ "type": "Feature", "properties": { "name": "12"}, "geometry": { "type": "Point", "coordinates": [ -135.02449372349508, 60.672615176262731 ] } },
{ "type": "Feature", "properties": { "name": "25"}, "geometry": { "type": "Point", "coordinates": [ -135.0240752514004, 60.673313811878423 ] } }
]};
var pointLayer = L.geoJSON(null, {
pointToLayer: function(feature,latlng){
label = String(feature.properties.name) // Must convert to string, .bindTooltip can't use straight 'feature.properties.attribute'
return new L.CircleMarker(latlng, {
radius: 1,
}).bindTooltip(label, {permanent: true, opacity: 0.7}).openTooltip();
}
});
pointLayer.addData(data_points);
mymap.addLayer(pointLayer);
Ví dụ hoạt động đầy đủ: https://jsfiddle.net/maphew/gtdkxj8e/3/
Để xóa nền nhãn
Xem ghi đè phong cách tooltip? để biết chi tiết sửa đổi CSS và Xóa hoàn toàn đường viền nhãn tooltip trong bản đồ Leaflet.js? để xóa con trỏ tam giác mà không chạm vào CSS (chỉ cần thêm direction: "center"
vào .bindTooltip
!)
Javascript:
.bindTooltip(label, {permanent: true,
direction: "center",
className: "my-labels"}).openTooltip();
CSS:
.leaflet-tooltip.my-labels {
background-color: transparent;
border: transparent;
box-shadow: none;
}
Ví dụ hoạt động đầy đủ: https://jsfiddle.net/maphew/gtdkxj8e/7/
permanent
? Từ leafletjs.com/reference-1.1.0.html#tooltip-option :Whether to open the tooltip permanently or only on mouseover