Mapbox GL-防止基于缩放的图层标签褪色

问题描述

将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','layout': {
        'text-field': [ 'format',['get','name'],{ 'font-scale': 0.8,'text-translate': [0,-20] } ],'Point']
});

放大后,它们看起来正确:

enter image description here

缩小时,圆圈开始重叠,但看起来仍然正确:

enter image description here

但是随后,“ 2”逐渐淡出,并且“ 1”在#2的圆圈中显示(即使圆圈具有白色填充并且不透明度为1),并不清楚是哪个#1和哪个# 2。

enter image description here

有更好的方法吗?我希望您可以在圆本身上添加居中标签

我可以禁用这种自动褪色/透明度吗?

我可以以某种方式将标签绑定到该特定圈子吗?

解决方法

我可以禁用这种自动褪色/透明度吗?

您可以使用"text-allow-overlap": true禁用它。您可能不喜欢结果。

我可以以某种方式将标签绑定到该特定圈子吗?

否。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...