Используя 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.
Есть лучший способ сделать это? Я бы хотел, чтобы вы просто добавили метку по центру к самому кругу.
Могу ли я отключить это автоматическое затухание / прозрачность?
Могу ли я как-то привязать ярлык к этому конкретному кругу?