在 100.2.0 版本上,是否支持对数据标注的字段、样式、大小、放置位置、优先级等属 性进行修改?

在 100.2.0 版本上,是否支持对图层标注的字段、样式、大小、放置位置、优先级等属性进行修改?
已邀请:

张赛

赞同来自: ls123_zh 席西

【解决办法】:
从100.2.0开始,图层标注可通过构建LabelDefinition的json串实现。LabelDefinition类是可以对Label进行细粒度控制的。
关于LabelDefinition的定义,可参见下面的链接。
https://developers.arcgis.com/ ... .html

其中明确指定了如下的定义方式:

String labelDefinitionString = {\n
    +  \allowOverrun\: false,\n
    +  \deconflictionStrategy\:\static\,\n
    +  \labelExpressionInfo\: { \expression\: \round(\$feature.length,2) + ''m^2''\,\n
    +  \labelPlacement\: \esriServerPolygonPlacementAlwaysHorizontal\,\n
    +  \lineConnection\: \none\,\n
    +  \minScale\: 1999,\n
    +  \maxScale\: 0,\n
    +  \multiPart\: \labelLargest\,\n
    +  \name\:\Building interior code\,\n
    +  \priority\: 15,\n
    +  \removeDuplicates\: \featureType\,\n
    +  \removeDuplicatesDistance\: 300,\n
    +  \repeatLabel\:false,\n
    +  \repeatLabelDistance\:0,\n
    +  \stackLabel\: true,\n
    +  \stackAlignment\: \dynamic\,\n
    +  \stackRowLength\: 20,\n
    +  \stackBreakPosition\: \before\,\n
    +  \symbol\: {\type\: \esriTS\, \color\: [0,78,78,255], \backgroundColor\: null, \borderLineColor\: null, \verticalAlignment\: \bottom\, \horizontalAlignment\: \left\, \rightToLeft\: false, \angle\: 0, \xoffset\: 0, \yoffset\: 0, \font\: {\family\: \Arial\, \size\: 12, \style\: \normal\, \weight\: \bold\, \decoration\: \none\}},\n
    + };

    LabelDefinition labelDefinition = LabelDefinition.fromJson(labelDefinitionString);
    GraphicsOverlay graphicsOverlay = new GraphicsOverlay();
    graphicsOverlay.getLabelDefinitions().add(labelDefinition);



 

席西

赞同来自:

太有用了

ljk761626336

赞同来自:

发现一个问题  标注字体大小设置以后 再从layer LabelDefinition 中取出  font变小了  比如 原来设置的是14  取出变成10.5  请问是什么原因?

要回复问题请先登录注册