您的位置:首页 > Web前端 > JavaScript

ArcGIS API for JavaScript——给图层添加标注

2017-05-25 18:46 956 查看
ArcGIS在发布服务的前可以设置图层的标注,也可以在发布服务后调用Arcgis API来修改要素的标注。

修改标注主要利用图层的
setLabelingInfo(labelingInfo)
方法,其中参数
labelingInfo
是一个
LabelClass
数组。

labelClass对象

有两种方法初始化一个
LabelClass
对象:

var lc=new LabelClass(json)
通过一个json对象来构造。

创建一个无参的
LabelClass
然后分别设置属性:

var lc=new LabelClass();
lc.fieldInfos=[];  //表示要标记的字段信息的对象数组
lc.labelExpression=""; //调整标签的格式
lc.labelExpressionInfo={}; //使用FeatureLayer图层类型时使用此属性。
lc.labelPlacement="";//标记显示的位置
lc.maxScale=10000; //标注显示的最大比例,超过就不显示
lc.minScale=100;//标记显示的最小比例,低于就不显示
lc.symbol=TextSymbol;//设置标记的文本渲染符号
lc.where=""; //如果指定,只有与此子句匹配的要素才会被标注


如果是以JSON方式初始化,JSON可以包含以上属性。

创建标注

先在
require
中引用类:

require(["esri/layers/LabelClass"], function(LabelClass) {  });


创建
LabelClass
对象:

var lc=new LabelClass({
labelExpressionInfo:{
value:"{Name}" //以"Name"属性作为标记字段
},
labelPlacement: "below-center"  //标记位置为正下方
});


设置
LabelClass
symbol

/*
*现在require中引用TextSymbol、Color、Font等类
*/
var textSymbol = new TextSymbol();
textSymbol.color=new Color("red");//设置标注颜色
var font=new Font("8pt",Font.STYLE_ITALIC,Font.VARIANT_NORMAL,Font.WEIGHT_BOLD,"Courier"); //设置标注字体
textSymbol.font=font;


添加标注

在给图层添加标注前,必须要将Map设置为显示标注:

map = new Map("map", {
basemap: "osm",
center: [115.9, 28.682303711467203],
showLabels : true   //一定要设置为true
});


图层添加标注:

layer.setLabelingInfo([lc]);


(完)

GIS技术交流:GISGO(http://www.gisgo.top)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: