在 GraphicsLayer 中为图形图标添加标签
Add label to graphic icon in GraphicsLayer
我正在使用以下代码创建一个 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
,基本上您需要在几乎所有可以使用 [=11= 的情况下使用它] 在较旧的库版本中。
It is generally preferred to construct a FeatureLayer with its source property when working with client-side graphics since the FeatureLayer has more capabilities than the GraphicsLayer, including rendering, querying, and labeling.
因此,回到问题,您可以使用labelExpressionInfo
属性 将要显示的标签文本绑定到要素的属性值。像这样,
labelExpressionInfo: {
expression: "$feature.NAME"
}
其中 NAME
是您要用作标签的属性。
我正在使用以下代码创建一个 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
,基本上您需要在几乎所有可以使用 [=11= 的情况下使用它] 在较旧的库版本中。
It is generally preferred to construct a FeatureLayer with its source property when working with client-side graphics since the FeatureLayer has more capabilities than the GraphicsLayer, including rendering, querying, and labeling.
因此,回到问题,您可以使用labelExpressionInfo
属性 将要显示的标签文本绑定到要素的属性值。像这样,
labelExpressionInfo: {
expression: "$feature.NAME"
}
其中 NAME
是您要用作标签的属性。