在arcgis地图上添加labels的详细步骤

arcgis的标签显示效果,这里使用arcgis官方的一个图片

ArcGIS应用程序中的特征层、图形叠加层和地图图像层子层可以使用属性值、文本字符串和表达式计算值的组合来标记。可以确定标签的定位和优先级,以及如何自动动态地解决重叠标签之间的冲突。

一、Label properties常见属性介绍

  1. 1、Which geoelements to label ( LabelDefinition.setWhereClause() )

这里类似SQL的过滤条件。把符合条件的数据找出来。
比如:

labelDefinition.setWhereClause(String.format("PARTY = '%s'", party));
  1. 2、Label text ( LabelDefinition.setExpression() ,
    SimpleLabelExpression , ArcadeLabelExpression ,
    WebmapLabelExpression )

把找出的数据,选择其中某一个或几个字段在标签上展示出来,包括样式设置。样式设置可以使用TextSymbol对象。要显示的字段在ArcadeLabelExpression中定义。
比如:

ArcadeLabelExpression arcadeLabelExpression =
        new ArcadeLabelExpression("$feature.party");
            
            $feature.party:相当于告诉它是表中哪个字段
  1. 3、 Text symbol ( LabelDefinition.setTextSymbol() ,
    TextSymbol )

    样式设置。可以使用setTextSymbol方式设置对象。也可以使用LabelDefinition构造对象时与ArcadeLabelExpression一起对LabelDefinition构造。
    比如:

   // create text symbol for styling the label
        TextSymbol textSymbol = new TextSymbol();
        textSymbol.setSize(12);
        textSymbol.setColor(Color.WHITE);
  1. 4、Placement ( LabelDefinition.setPlacement() , LabelingPlacement )

标签的显示方式
Above right for point labels
Above along for line labels
Always horizontal for polygon labels
比如:

labelDefinition.setPlacement(LabelingPlacement.POLYGON_ALWAYS_HORIZONTAL);
  1. 5、其它方法

二、LabelDefinition 的创建

LabelDefinition labelDefinition = new LabelDefinition(arcadeLabelExpression, textSymbol);

三、指定图层定义标签设置

layer.getLabelDefinitions().add(labelDefinition);

四、完整代码

// create text symbol for styling the label
        TextSymbol textSymbol = new TextSymbol();
        textSymbol.setSize(12);
        textSymbol.setColor(Color.WHITE);
        
        //指定显示的字段
          ArcadeLabelExpression arcadeLabelExpression =
            new ArcadeLabelExpression("$feature.party");
            
            //构造 LabelDefinition
            LabelDefinition labelDefinition = new LabelDefinition(arcadeLabelExpression, textSymbol);
            
          //SQL条件方式过滤数据 labelDefinition.setWhereClause(String.format("PARTY = '%s'", party));
          
//标签显示方式           labelDefinition.setPlacement(LabelingPlacement.POLYGON_ALWAYS_HORIZONTAL);

            //指定图层设置labelDefinition
            layer.getLabelDefinitions().add(labelDefinition);

arcgis官方相关英文文档参考:
https://developers.arcgis.com/android/styles-and-data-visualization/add-labels/

如果有一起使用arcgis的朋友(或想学习arcgis的朋友),可以相互多交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值