我使用以下代码来创建一个GraphicsLayer。
const labelClass= {
symbol: { type: "text", color: "green", font: { family: "Sans", size: 12, weight: "bold" }},
labelPlacement: "above-center"
};
gl=new GraphicsLayer({ labelingInfo: [labelClass]})
app.map.add(app.gl);
然后用这段代码添加图标。
let graphic=new Graphic(
geometry:{ type: "point", lat, lon },
symbol:{ type: "picture-marker", url:"popover.png", width:19, height:13 },
});
gl.add(graphic);
我如何告诉arcGIS每个图标要画什么文字?
GraphicsLayer
没有 labelingInfo
属性。对于标签,你需要使用 FeatureLayer
事实上,从新的库版本开始,建议使用 FeatureLayer
基本上你需要在几乎所有你可以使用的情况下使用它。GraphicsLayer
在旧库版本中。
在处理客户端图形时,一般倾向于用它的源属性构造一个FeatureLayer,因为FeatureLayer比GraphicsLayer有更多的功能,包括渲染、查询和标注。
所以,回到问题上,你可以使用 labelExpressionInfo
属性来将您要显示的标签文本与特征的属性值绑定。就像这样。
labelExpressionInfo: {
expression: "$feature.NAME"
}
哪儿 NAME
是您要使用的标签属性。