将Mapbox GL JS 1.12.0与GeoJSON一起使用,我要添加具有基于GeoJSON中“名称”值的数字标签的圆。
map.addLayer({
'id': 'marker',
'type': 'circle',
'source': 'geojson',
'minzoom': 0,
'maxzoom': 24,
'paint': {
'circle-radius': 10,
'circle-color': '#FFFFFF',
'circle-stroke-color': '#000000',
'circle-stroke-width': 2,
'circle-opacity': 1,
},
'filter': ['==', '$type', 'Point']
});
map.addLayer({
'id': 'marker-label',
'type': 'symbol',
'source': 'geojson',
'minzoom': 0,
'maxzoom': 24,
'layout': {
'text-field': [ 'format', ['get', 'name'], { 'font-scale': 0.8, 'text-translate': [0,-20] } ],
},
'filter': ['==', '$type', 'Point']
});
放大后,它们看起来正确:
缩小时,圆圈开始重叠,但看起来仍然正确:
但是随后,“ 2”逐渐淡出,并且“ 1”在#2的圆圈中显示(即使圆圈具有白色填充并且不透明度为1),并不清楚是哪个#1和哪个# 2。
有更好的方法吗?我希望您可以在圆本身上添加居中标签。
我可以禁用这种自动褪色/透明度吗?
我可以以某种方式将标签绑定到该特定圈子吗?
答案 0 :(得分:0)
我可以禁用这种自动褪色/透明度吗?
您可以使用"text-allow-overlap": true
禁用它。您可能不喜欢结果。
我可以以某种方式将标签绑定到该特定圈子吗?
否。