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]);
【轉】 https://blog.csdn.net/qq451354/article/details/56835164