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',
    '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.

введите описание изображения здесь

Есть лучший способ сделать это? Я бы хотел, чтобы вы просто добавили метку по центру к самому кругу.

Могу ли я отключить это автоматическое затухание / прозрачность?

Могу ли я как-то привязать ярлык к этому конкретному кругу?


person user1517922    schedule 06.10.2020    source источник


Ответы (1)


Могу ли я отключить это автоматическое затухание / прозрачность?

Вы можете использовать "text-allow-overlap": true, чтобы отключить его. Результат может тебе не понравиться.

Могу ли я как-то привязать ярлык к этому конкретному кругу?

No.

person Steve Bennett    schedule 07.10.2020