在GraphicsLayer中为图形图标添加标签

问题描述 投票:0回答:1

我使用以下代码来创建一个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每个图标要画什么文字?

javascript arcgis-js-api arcgis-online
1个回答
0
投票

GraphicsLayer 没有 labelingInfo 属性。对于标签,你需要使用 FeatureLayer事实上,从新的库版本开始,建议使用 FeatureLayer基本上你需要在几乎所有你可以使用的情况下使用它。GraphicsLayer 在旧库版本中。

ArcGIS API - GraphicsLayer

在处理客户端图形时,一般倾向于用它的源属性构造一个FeatureLayer,因为FeatureLayer比GraphicsLayer有更多的功能,包括渲染、查询和标注。

所以,回到问题上,你可以使用 labelExpressionInfo 属性来将您要显示的标签文本与特征的属性值绑定。就像这样。

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

哪儿 NAME 是您要使用的标签属性。

© www.soinside.com 2019 - 2024. All rights reserved.