FeatureLayer未能显示标注问题

本文详述了在ArcGIS Web应用中如何正确显示FeatureLayer的标注,涉及图层和地图设置,以及字段匹配的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同事告诉我,我在web页面上叠加的他们制作的图层,没有显示相应的标注。

“标注?啥东东?”,我一头雾水。原来,图层中,一些对象,比如色块、小图标,往往会有相关的文字加以说明,这就是所谓的标注。在arcgis中,应该叫“label”。

这里写图片描述

“你看,我打开【要素标注】选项,就有文字,关闭,则消失”,同事在arcgis里娴熟地操作着,文字忽隐忽现,刺痛了俺的眼睛。为何我叠加的图层没有出现这些相关文字?

有另外一个同事写的WEB页面就有标注。不过,他采用new ArcGISDynamicMapServiceLayer 的方式来加载图层,而我用的是 new FeatureLayer 的方式。众所周知,前者是所谓动态图层,与切片图层一样,地图是从服务器端返回图片的形式展示在客户端;而FeatureLayer属于图形图层,客户端从服务器端拿到的是数据,然后再绘制出来。一般而言,动态图层和切片图层可用于底图,而FeatureLayer用于图层叠加。

所以,该同事的图层能显示标注不足为奇。那么,FeatureLayer就没办法显示标注了吗?网上疯狂搜索,见到的答案,基本都是添加一个标注,自己设内容、字体、颜色。我想,这适合图层本身没有标注,而对于图层已经有了标注的情况下,为什么我们不能够直接显示出来呢?

查看FeatureLayer的构造函数,有参数名曰:showLabels,这个就跟标注有关,默认为false,设为true不就可以了吗?

var fl = new FeatureLayer(node.nodePath, {
    mode: FeatureLayer.MODE_ONDEMAND,
    outFields: ["*"],
    showLabels: true
});
1
2
3
4
5
结果还是没有显示。原来,光在图层这里设置还不够,map本身也要支持才行:

return new Map("map", {
    basemap: "delorme",
    center: mapcenter,
    maxZoom: 15,
    minZoom: 5,
    zoom: _zoomdefault,
    extent: bounds,
    logo: false,
    nav: false,
    showLabels: true,//<----------------------
    sliderPosition: "top-right"
});
如此,标注显示矣。地图、图层都要将这个showLables设为true,缺一不可。

另外,标注是绑定某个字段的,所以,叠加图层的时候,outFields 一定要包含该字段,否则,标注将显示“undefined”。

有些图层未必有标注。这个直接浏览图层服务地址就能看出来:

————————————————
版权声明:本文为优快云博主「左直拳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/leftfist/article/details/78502405

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值