理论介绍
1.动态图层介绍
动态图层是地图服务中包含的一项功能,允许通过客户端API动态的更改地图服务中的图层外观和行为。具体来说,通过动态图层可以实现:
- 向地图服务中动态的添加新图层;
- 设置图层动态标注;
- 修改图层渲染方式,支持简单渲染、唯一值渲染、分类渲染;
- 更改地图服务中图层的显示顺序;
- 从地图服务中移除图层;
- 动态的添加和修改图层或表的连接关系;
拿WebGIS系统开发来说,如果想更改地图服务中某个图层的渲染方式,通常的做法是先将数据取到客户端,然后在客户端更改渲染方法。对于小数据量,这种客户端渲染的方式没有问题,但数据量大之后客户端无法承载。
个人认为,在以下业务需求下,可尝试使用动态图层来解决:
- 需要更改地图服务中某个图层的渲染方式,且该图层包含的要素个数比较多,使用常规的客户端渲染方式性能差或者无法支撑大数据量。
- 需要在客户端实现动态的添加业务图层。
需要注意的是,动态图层支持的数据量也不是无限的,动态图层的出图效果与发布的动态地图服务效果一样。换句话说,如果动态地图服务中数据量上百万后,在客户端加载时会明显看到数据加载效果,而且加载会较慢,同样换成动态图层也会出现同样的效果。
2.动态图层支持的数据源
动态图层支持的数据源包括:
- 数据库(仅查询图层)
- 文件地理数据库(仅要素图层、栅格图层和表)
- 包含基于文件的栅格的文件夹
- 包含 shapefile 或 .dbf 文件的文件夹
- 地理数据库(仅要素图层、栅格图层、查询图层和表)
3.开启动态图层功能
3.1.注意事项
- 需要为数据源设置工作空间ID,用于唯一标识工作空间池中的工作空间。该 ID 可以是任何字符串,并且可以包含空格。
- 选择动态工作空间时,建议选择仅含有支持地图服务的图层和表格的工作空间。
- ArcGIS Server 帐户必须至少具有对包含想要动态添加到地图服务的数据的动态工作空间的读访问权限。
3.2.开启步骤
- 在发布地图服务过程中,选择
Capabilities-->Mapping
,勾选上“Allow per request modification of layer order and symbology”
,即可开启动态图层功能。 - 开启动态图层功能后,还需为地图服务添加动态工作空间,即指定动态图层所在的位置。
打开Manage…
,可为地图服务添加多个动态工作空间。动态工作空间根据数据类型分为数据库、Shapefile、文件GDB、栅格。
4.动态图层开发注意事项
在客户端API中使用动态图层功能时,可以结合rest服务地址来测试传递的参数是否合法,以及检验输出结果。rest地址中传递的参数内容可根据REST API帮助说明输入。
5.JS API中动态图层的结构分析
在JS API中与动态图层相关的数据源有两类:图层源和数据源。图层源指的是可以加载到地图中的Layer,数据源则是图层源Layer实际关联的原始数据。图层源与数据源的关系如下:
Map Layer图层源 | Data Layer数据源 |
---|---|
—— | table数据源 |
—— | raster数据源 |
—— | query数据源 |
—— | join数据源 |
图层源分为两种:Map Layer和Data Layer,如果是原地图服务中的图层,则图层源类型是Map Layer;如果是从动态工作空间加载的图层,则是Data Layer类型。Data Layer根据原始数据的来源(即数据源),包含有:table、raster、query、join。table数据源指的是表和图层数据、raster指的是栅格数据、query指的是查询图层、join用于建关联关系。
网友评论