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新特性系列---动态图层的更多相关文章

  1. ArcGIS Server 10.2 实战(三)图层标注及图例中文显示乱码的解决

    发布的图层中不可避免的使用到中文来标注,默认设置下,ArcGIS Server不支持中文的,中文标注显示成乱码,主要是编码的问题,需要把手动把编码改为UTF-8. ArcGIS Server 10.2 ...

  2. 【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(二)

    4 三维 4.1 共享三维场景         用户能够将ArcScene文档导出为3D web场景,能够被加载到ArcGIS Online.Portal或本地Web服务器上并进行分享.这样,用户可以 ...

  3. ArcGIS Server 10.2 实战(二)动态修改要素数据的地理处理服务

    上一篇<ArcGIS Server 10.2 实战(一)Asp.net MVC与JSON数据妙用实现动态生成要素图层>介绍了如何用JSON转要素的地理处理服务,实现了动态创建点要素并加载到 ...

  4. 【ArcGIS 10.2新特性】ArcGIS Online新特性(上)

    概述 7月,ArcGIS Online发布了很多更新.主要内容有:新的网站设计,增强了Web制图,数据分析,应用程序创建,以及机构管理等功能. 更新的大致内容总结如下: 地图查看器:新的分析工具.获取 ...

  5. 【转】ArcGIS Server 10.1 动态图层—添加栅格

    本文将介绍如何通过arcgisserver10.1动态图层添加栅格影像.与添加矢量数据不同的是,天际栅格用到了RasterDataSource接口,如下所示 <esri:DynamicLayer ...

  6. fir.im Weekly - 从 iOS 10 SDK 新特性说起

    从 iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 的分屏多任务特性,今年的 WWDC iOS 10 SDK ...

  7. arcgis server 10.2安装后,忘记Manager的用户名和密码

    arcgis server 10.2安装完毕后,需要创建站点,创建站点时,填写管理站点的用户名和密码.自己不小心,创建完毕后,给忘记了用户名和密码.求助Esri,解决方法如下: (1)找到arcgis ...

  8. 【数据库】 SQL SERVER 2012 实用新特性

    [数据库] SQL SERVER 2012 实用新特性 官方链接 一. ALWAYS ON - 灾难恢复 二. 列存储索引 - 比非聚集索引效率高,但有索引表不允许修改数据(插入,更新,删除),用于读 ...

  9. Arcgis Server 10.4.1 搭建集群环境

    1.准备工作 Arcgis Server 10.4.1  以及许可一枚 共享存储(通过UNC路径访问,如"\\server1\arcgisserver\") 服务器两台(虚拟机也可 ...

随机推荐

  1. set_time_limit(0)是什么意思?

    语法 : void set_time_limit (int seconds) 说明 : 设定一个程式所允许执行的秒数,如果到达限制的时间,程式将会传回错误.它预设的限制时间是30秒,max_execu ...

  2. uni-app学习记录01-pages配置项

    { // 每个页面都需要在pages里面去声明配置 "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/coll ...

  3. 困扰的问题终于解决了-docker时区不正确的问题修改记

    前一阵子有一台服务器,mysql的时间比北京时间晚了8个小时.我知道是时区的问题,但是不知道为什么弄成这样,宿主机没有问题,后来一看mysql的docker,时区是错的. mybatis-plus打印 ...

  4. java接口的使用

    格式:public class SubImpl  extends Super  implements IA,IB 接口可以多继承,但是只能继承接口,不能继承类. 实现接口(支持多实现) [修饰符] c ...

  5. Vue之webpack的安装与配置及其简单应用

    一.文件结构 二.index.html <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  6. linux设备驱动文件结构

    struct file, 定义于 <linux/fs.h>, 是设备驱动中第二个最重要的数据结构. 注意 file 与用户空间程序的 FILE 指针没有任何关系. 一个 FILE 定义在 ...

  7. Vue.js 学习笔记 第7章 组件详解

    本篇目录: 7.1 组件与复用 7.2 使用props传递数据 7.3 组件通讯 7.4 使用slot分发内容 7.5 组件高级用法 7.6 其他 7.7 实战:两个常用组件的开发 组件(Compon ...

  8. vue 路由跳转前确认框,刷新浏览器页面前提示确认框

    先看效果图: 1.刷新页面效果: 2.跳转路由(进入别的页面前)效果: 代码: // 路由跳转确认 beforeRouteLeave(to, from, next) { const answer = ...

  9. luoguP4313 文理分科

    luoguP4313 文理分科 复习完之后做了道典型题目. 这道题条件有点多 我们逐个分析 如果没有\(sameart\)或者\(samescience\)的限制,就是一个裸的最大权闭合子图的问题了 ...

  10. Java虚拟机-字节码执行引擎

    概述 Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,成为各种虚拟机执行引擎的统一外观(Facade).不同的虚拟机引擎会包含两种执行模式,解释执行和编译执行. 运行时帧栈结构 栈帧(Sta ...