MapGIS Client for JavaScript三维场景中的要素服务开启动态注记

前言

在三维webgis应用开发中,注记是表达空间要素属性信息的重要方式。MapGIS Client for JavaScript 通过 LabelClass 类和相关参数,支持对三维要素服务图层(如 IGSFeatureLayerWFSLayer等)添加注记,注记支持样式、布局、可见性、避让策略等配置。本文将详细介绍该接口的用法。

主要参数

LabelClass

LabelClass 用于定义注记的样式和行为。常用参数如下:

  • symbol:注记文本的符号样式,支持 TextSymbolMapGISTextSymbol
  • renderMode:注记渲染方式,常用值有 'canvas''label''ground'
  • labelExpression:注记内容表达式,支持如 "$feature.name" 形式,自动读取要素属性。
  • labelPlacement:注记布局位置,点、线、区类型支持不同的布局方式。
  • groundScalerenderMode'ground' 时,像素与实际米的比例。
  • deconflictionStrategy:注记避让策略,支持 'static'(默认)和 'none'
  • maxScale/minScale:注记显示的比例尺范围(单位:米)。
  • extensionOptions:扩展参数,可传递底层引擎原生样式。

详细参数请参考API文档

IGSFeatureLayerWFSLayerGeoJSONLayer支持通过 labelingInfo 属性配置注记,labelsVisible 控制注记是否显示。

用法

以下示例展示如何在三维场景中为要素服务图层添加动态注记:

// ...初始化地图与场景代码...

function addFeatureLayer() {
  const featureLayer = new zondy.layer.IGSFeatureLayer({
    url: 'http://webclient.smaryun.com:8089/igs/rest/services/Map/湖北省4326/FeatureServer',
    sublayerId: '0',
        renderer: new zondy.renderer.RandomRenderer(),
        definitionExpression: "name IS NOT NULL",
        serverFilter: {},
        outFields: ['NAME', 'GDP2016'],
    labelsVisible: true, // 启用注记
        labelingInfo: [
          new zondy.layer.LabelClass({
            symbol: {
              color: 'rgba(255,255,255,1)',
              haloColor: 'rgba(0,0,0,0.5)',
              haloSize: 2,
              font: {
                size: 16,
                family: '微软雅黑',
                weight: 'normal',
                style: 'normal'
              }
            },
            renderMode: 'label', // 渲染模式:'canvas'、'label'或'ground'
            labelPlacement: 'parallel',
            groundScale: 50, // 贴地注记时的缩放比例
            labelExpression: "$feature.NAME + '\\n' + 'GDP:' +$feature.GDP2016"  // 动态读取要素属性
          })
        ]
  });
  map.add(featureLayer);
}

在这里插入图片描述

注意事项

使用要素服务图层添加注记时,需注意仅适用于小批量数据,大量矢量数据渲染可能会存在性能问题,可以根据业务需求,选择使用栅格瓦片类型的图层或矢量瓦片图层。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值