ArcGIS Server 10.1新特性系列---动态图层
ArcGIS Server 10.1新特性里面有几个新功能是非常棒的,其中有一个就是动态图层。动态图层不是一种新发明的图层,而是说在arcgis server的web应用中可以动态的配置其渲染和内容功能的图层,动态mapservice中的图层都可以通过相应的配置使其成为动态图层。动态图层的功能的产生是mapservice的核心功能进行增强的结果。
动态图层功能的产生背景:
先提出两个需求:
1 如何做专题图?动态的改变地图服务中的图层显示信息包括符号,渲染方式?
2 如何添加一个图层到地图服务中?数据可能在服务器端的数据库或者文件夹中。
这两个问题在10.1之前的版本也是可以实现的,先说第一个问题,第一个问题的有两种实现途径,一是使用非池化服务加ao编程来制作专题图,二是通过把数据下载到客户端,通过客户端渲染来实现专题图。第一种方法因为使用了非池化服务,所以效率比较低,再加上ao编程相对来说比较复杂,第二种方法对于小数据量是可行的,但是一旦数据量达到一定程度,那么客户端渲染就非常的慢。
第二个问题,采用的方法也是使用非池化服务加ao编程来实现。
正是在10.1之前的版本中实现这两个比较常见的问题有一定的局限性,在10.1就有了新的解决方案—那就是动态图层。
在10.1版本中这两个问题都可以通过动态图层来实现,动态图层的功能是通过rest api方式暴露的,所以通过Esri提供的几种webAPI都可以实现改变图层的符号,渲染方式以及添加删除图层的功能。就说改变图层的符号,在客户端的请求中指定用哪种符号,什么颜色,服务器端就会用指定的符号和颜色进行渲染然后把相应的图片返回给客户端。所以这些改变都是针对每个请求的,不会改变服务本身。
动态图层的应用场景:
1 改变现有图层:符号,渲染方式和版本,这些都可以通过客户端请求的时候给定相应的参数来进行设置,从而来达到轻易改变地图的效果。
2 添加地图服务中没有的图层
添加的数据可以是矢量数据也可以栅格数据,还可以是一个通过sql查询出来的结果,或者是两个表关联的关联结果。矢量的数据可以是shapefile,filegdb,或者sde中的数据。栅格数据可以是esri能直接识别的栅格数据格式。
动态图层功能的服务器端配置:
动态图层在配置上非常简单,如果你只是需要把mapservice中的图层变为动态图层的话,只需要打一个勾就可以。如果是要动态添加一个数据到地图服务中,就需要在地图服务中设置要添加的数据的工作空间,步骤如下:
1 在服务属性对话框中,如下图,在Parameters选项中把右下角allow per request modification of layer order and symbology 前面的选项框中打钩,如果只是要改变现有图层的信息,就此一步就可以了,如果要动态添加数据,点击旁边的Manage按钮。

2 点击manage对话框之后弹出下面的对话框,就是对你要添加的数据的工作空间进行管理,你可以在这里添加多个工作空间,这些工作空间中的数据就都可以实现动态的添加了。如下图:
3 点击Add按钮,可以添加workspace,选择workspace的类型,输入workspaceID和连接信息,如果是shapesfiles的话就是文件目录。这些信息都会在添加数据的时候用到的。如下图:

动态图层功能的Rest API和具体使用
获得动态图层的URL为:http://<mapservice-url>/dynamicLayer
参数设置说明如下:

Layer参数里面的内容是我们使用动态图层功能的关键内容。关键的有source和drawinginfo两项,source是指定图层,drawinginfo是指定绘制方式,比如渲染和符号,比如要改变某一个图层的符号,就在参数里面设置id,source, drawinginfo,指定了这些内容也就是告诉了后台服务器如何来绘制地图。看到这些设置项,我们也就能很好的理解动态图层的原理了,客户端告诉服务器绘制哪些图层,可以是指定工作空间的,也可以是已经发布好的图层,告诉服务器如何绘制这些图层,用什么样的渲染方式,什么样的符号,一切都是客户端告诉服务器端的,服务器端只是按照客户端的要求去生成地图而已。
下面是一个例子,指定了地图服务中的maplayerid为3的图层的符号和渲染信息: { "id": 501,
"source": { "type": "mapLayer", "mapLayerId": 3 }, "drawingInfo": { "renderer": { "type": "simple", "symbol": { "type" : "esriSFS", "style" : "esriSFSSolid", "color" : [166,36,100,255], "outline" : { "type" : "esriSLS", "style" : "esriSLSSolid", "color" : [110,110,110,255], "width" : 1.0 } }, "label": "TaxLots", "description": "" }, "transparency": 60 } }
下面的这个例子是添加一个指定工作空间下的名称为usstates的featureclass,并给它指定了相应的渲染方式和符号,刚才在服务器端设定的工作空间的名称就在这里用到了。
{ "id": 502, "source": { "type": "dataLayer", "dataSource": { "type": "table", "workspaceId": "MyDatabaseWorkspaceID", "dataSourceName": "SDE.usstates", "version": "" } }, "drawingInfo": { "renderer": { "type": "simple", "symbol": { "type" : "esriSFS", "style" : "esriSFSSolid", "color" : [166,36,100,255], "outline" : { "type" : "esriSLS", "style" : "esriSLSSolid", "color" : [110,110,110,255], "width" : 1.0 } }, "label": "TaxLots", "description": "" }, "transparency": 60 } }
上面是动态图层的参数例子,在具体使用的时候,就把上面的内容作为一个dynamiclayers的参数内容来使用就可以,比如在mapservice的exportmap操作中使用:
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/cityservices/MapServer/export?bbox=-244.41198409251106,-41.12263057731275,-0.7748853058572536,131.45364772990035&bboxSR=&layers=&layerDefs=&size=&imageSR=&format=png&transparent=false&dpi=&time=&layerTimeOptions=&dynamicLayers=[{"id":503,"source":{"type":"dataLayer","dataSource"{"type":"table","workspaceId":"MAP","dataSourceName":"MAP.user1.Taxlots"}},"drawingInfo":{"renderer":{"type":"simple","symbol"{"type":"esriSFS","style":"esriSFSSolid","color":[166,36,0,255],"outline":{"type":"esriSLS","style":"esriSLSSolid","color":[110,110,110,255],"width":1}},"label":"TaxLots","description":""},"transparency":60},"definitionExpression":"neighborhood='FrenchQuarter'"}]&f=html
不仅export map操作可以跟dynamiclayers参数,query操作也可以跟dynamiclayers参数,也就是说可以对动态图层进行查询。
ArcGIS Server 10.1新特性系列---动态图层的更多相关文章
- ArcGIS Server 10.2 实战(三)图层标注及图例中文显示乱码的解决
发布的图层中不可避免的使用到中文来标注,默认设置下,ArcGIS Server不支持中文的,中文标注显示成乱码,主要是编码的问题,需要把手动把编码改为UTF-8. ArcGIS Server 10.2 ...
- 【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(二)
4 三维 4.1 共享三维场景 用户能够将ArcScene文档导出为3D web场景,能够被加载到ArcGIS Online.Portal或本地Web服务器上并进行分享.这样,用户可以 ...
- ArcGIS Server 10.2 实战(二)动态修改要素数据的地理处理服务
上一篇<ArcGIS Server 10.2 实战(一)Asp.net MVC与JSON数据妙用实现动态生成要素图层>介绍了如何用JSON转要素的地理处理服务,实现了动态创建点要素并加载到 ...
- 【ArcGIS 10.2新特性】ArcGIS Online新特性(上)
概述 7月,ArcGIS Online发布了很多更新.主要内容有:新的网站设计,增强了Web制图,数据分析,应用程序创建,以及机构管理等功能. 更新的大致内容总结如下: 地图查看器:新的分析工具.获取 ...
- 【转】ArcGIS Server 10.1 动态图层—添加栅格
本文将介绍如何通过arcgisserver10.1动态图层添加栅格影像.与添加矢量数据不同的是,天际栅格用到了RasterDataSource接口,如下所示 <esri:DynamicLayer ...
- fir.im Weekly - 从 iOS 10 SDK 新特性说起
从 iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 的分屏多任务特性,今年的 WWDC iOS 10 SDK ...
- arcgis server 10.2安装后,忘记Manager的用户名和密码
arcgis server 10.2安装完毕后,需要创建站点,创建站点时,填写管理站点的用户名和密码.自己不小心,创建完毕后,给忘记了用户名和密码.求助Esri,解决方法如下: (1)找到arcgis ...
- 【数据库】 SQL SERVER 2012 实用新特性
[数据库] SQL SERVER 2012 实用新特性 官方链接 一. ALWAYS ON - 灾难恢复 二. 列存储索引 - 比非聚集索引效率高,但有索引表不允许修改数据(插入,更新,删除),用于读 ...
- Arcgis Server 10.4.1 搭建集群环境
1.准备工作 Arcgis Server 10.4.1 以及许可一枚 共享存储(通过UNC路径访问,如"\\server1\arcgisserver\") 服务器两台(虚拟机也可 ...
随机推荐
- settTimeout vs setInterval
setTimeout:过一段固定的时间后,将代码提交到代码队列中排队. setInterval:每隔一段固定的时间,执行一次代码. 他们两都接受两个参数,第一个参数是字符串或者函数,第二个参数是设定的 ...
- CentOS 7 安装 LNMP 环境(PHP7 + MySQL5.7 + Nginx1.10)
记录下在CentOS 7 安装 LNMP 环境(PHP7 + MySQL5.7 + Nginx1.10)过程笔记. 工具 VMware版本号 : 12.0.0 CentOS版本 : 7.0 一.修改 ...
- 教你怎么让vi和vim显示行数
首先我们来看看没有行号是多么难看. 2 再来看看有行号后的效果. 3 设置行号很简单. 我们要到命令模式下,输入set number :set number 按下回车 来看看效果 4 那么怎么关闭行号 ...
- 反思K-S指标(KPMG大数据挖掘)
评估信用评级模型,反思K-S指标 2015-12-05 KPMG大数据团队 KPMG大数据挖掘 “信用评级”的概念听起来可以十分直截了当.比如一天早上你接到电话,有个熟人跟你借钱,而你将在半睡半醒间迅 ...
- 2018-8-10-WPF-判断调用方法堆栈
title author date CreateTime categories WPF 判断调用方法堆栈 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17: ...
- 2018-2-13-WPF-拖动时出现-Invalid-FORMATETC-structure
title author date CreateTime categories WPF 拖动时出现 Invalid FORMATETC structure lindexi 2018-2-13 17:2 ...
- dotnet 使用 Qpush 快速从电脑到手机推送文字
在手机打字总不是方便,于是就有了 Qpush 这个工具,通过这个工具可以快速从电脑到手机推送文字. 但是这个工具没有找到客户端,于是我就给他写了一个库,通过这个库可以快速进行开发 先介绍QPush 快 ...
- 解决 npm run dev b报错 “'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”
摘自:https://www.cnblogs.com/laraLee/p/9174383.html 前提: 电脑已经安装了nodeJS和npm, 项目是直接下载的zip包. 在项目目录下运行“npm ...
- 原 Linux:ping不通baidu.com
如果某台Linux服务器ping不通域名, 如下提示: [root@localhost ~]# ping www.baidu.com ping: unknown host www.baidu.com ...
- monaco-editor使用
monaco-editor是一款非常好用的web代码编辑器,那么如何把他加到自己的项目中呢. 1.下载插件 npm install monaco-editor@0.8.3 2.初始化编辑器值 < ...