我想在一个圆圈内添加一个文本,这是我的标记,但是它什么也没显示。
我有两层,一层代表圆圈,一层代表文字。
我正在尝试通过添加文本字段属性使其工作,但nothigs会被渲染。
这是我的两层,我试图添加文本的那一层是第二层,称为单打计数
map.addLayer({
id: "singles",
// type: "symbol",
type: "circle",
source: "users",
filter: ["!has", "point_count"],
// layout: {
// "icon-image": "custom-marker"
// },
paint: {
'circle-radius': {
'base': 10,
'stops': [[5, 20], [15, 500]]
},
'circle-color': '#ddffc8',
}
});
});
map.addLayer({
id: "singles-count",
type: "symbol",
source: "users",
filter: ["has", "singles_count"],
layout: {
"text-field": "XXX",
"text-font": ["DIN Offc Pro Medium", "Arial Unicode MS Bold"],
"text-size": 12
}
});
但是,它不呈现XXX也不抛出任何错误,有什么想法吗?
答案 0 :(得分:1)
这里有3种可能出错的地方:
filter: ["has", "singles_count"]
的结果为false
功能,因此没有呈现任何符号。
似乎
就像您有一个很大的圆半径'stops': [[5, 20], [15, 500]]
。 singles
层可能会与singles-count
层完全重叠,并且实际上正在渲染文本,但该文本在之下。要解决此问题,您需要指定beforeId
函数的addLayer
参数,例如this:
map.addLayer({
id: "singles-count",
type: "symbol",
source: "users",
filter: ["has", "singles_count"],
layout: {
"text-field": "XXX",
"text-font": ["DIN Offc Pro Medium", "Arial Unicode MS Bold"],
"text-size": 12
}, 'singles');
["DIN Offc Pro Medium", "Arial Unicode MS Bold"]
的字体标志符号。 (“网络”标签中的404
错误)答案 1 :(得分:0)
可以用jsfiddle / codepen做一个测试用例吗?层看起来不错,但是过滤器可能会过滤掉所有数据。