前言
在三维webgis应用开发中,注记是表达空间要素属性信息的重要方式。MapGIS Client for JavaScript 通过 LabelClass 类和相关参数,支持对三维要素服务图层(如 IGSFeatureLayer、WFSLayer等)添加注记,注记支持样式、布局、可见性、避让策略等配置。本文将详细介绍该接口的用法。
主要参数
LabelClass
LabelClass 用于定义注记的样式和行为。常用参数如下:
- symbol:注记文本的符号样式,支持
TextSymbol或MapGISTextSymbol。 - renderMode:注记渲染方式,常用值有
'canvas'、'label'、'ground'。 - labelExpression:注记内容表达式,支持如
"$feature.name"形式,自动读取要素属性。 - labelPlacement:注记布局位置,点、线、区类型支持不同的布局方式。
- groundScale:
renderMode为'ground'时,像素与实际米的比例。 - deconflictionStrategy:注记避让策略,支持
'static'(默认)和'none'。 - maxScale/minScale:注记显示的比例尺范围(单位:米)。
- extensionOptions:扩展参数,可传递底层引擎原生样式。
详细参数请参考API文档。
IGSFeatureLayer 、WFSLayer、GeoJSONLayer支持通过 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);
}

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

被折叠的 条评论
为什么被折叠?



