0

我正在使用以下代码来创建 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 用每个图标绘制什么文本?

4

1 回答 1

0

GraphicsLayer没有labelingInfo财产。对于您需要使用的标签FeatureLayer,实际上由于建议使用新的库版本FeatureLayer,因此基本上您需要在几乎所有可以GraphicsLayer在旧库版本中使用的情况下使用它。

ArcGIS API - GraphicsLayer

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

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

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

NAME您要用作标签的属性在哪里。

于 2020-05-23T05:46:45.780 回答