FeatureLayer未能显示标注问题
来源:互联网 发布:sql语句大全 编辑:程序博客网 时间:2024/06/08 02:10
同事告诉我,我在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});
结果还是没有显示。原来,光在图层这里设置还不够,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”。
有些图层未必有标注。这个直接浏览图层服务地址就能看出来:
- FeatureLayer未能显示标注问题
- FeatureLayer显示文字标注
- Arcgis server for js 只FeatureLayer显示label的问题
- FeatureLayer tooltip显示设置
- arcgis for js FeatureLayer文字标注
- 条件显示FeatureLayer要素内容
- 地图服务标注显示乱码问题
- 地图服务标注显示乱码问题
- 地图服务标注显示乱码问题
- 地图服务标注显示乱码问题
- ArcGIS FeatureLayer 中文乱码问题
- FeatureLayer.MODE_SNAPSHOT限制数量问题
- 标注问题
- 标注问题
- iReport中解决Pdf打印中文未能显示问题
- Skyline中的标注显示
- ArcEngine标注显示比率
- phpMyAdmin未能正解显示
- 04oracle学习笔记
- angular $filter 自定义显示当前时间
- mysql中decimal,numeric,double,float的区别
- DShow暂时存.
- Android实现网络多线程断点续传下载
- FeatureLayer未能显示标注问题
- Windows如何使用jstack跟踪异常代码
- MySQL5.7.x 64位安装报错问题解决
- 新玩法,CentOS7中LVM通过扩展逻辑卷扩展swap空间
- hdu 1686 Oulipo
- 安装fedora后开发环境及软件安装
- How to install the pycharm in my ubuntu
- MATLAB中如何删除全零行或者列
- LintCode_035_翻转链表