繁体   English   中英

将 label 添加到 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 ,基本上您需要在几乎所有可以在旧库版本中使用GraphicsLayer的情况下使用它。

ArcGIS API - GraphicsLayer

在处理客户端图形时,通常首选使用其源属性构造 FeatureLayer,因为 FeatureLayer 比 GraphicsLayer 具有更多功能,包括渲染、查询和标记。

因此,回到问题,您可以使用labelExpressionInfo属性将要显示的 label 文本绑定到要素属性的值。 像这样的东西,

labelExpressionInfo: {
 expression: "$feature.NAME"
}

其中NAME是您要用作 label 的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM