@

1 前言

1.1 简介

ArcGIS Server将GIS资源以服务的方式发布,能够让更多的人在Web上浏览、使用。不过,诸如气象、环保等方面的信息是实时变化的,按照之前常规的方法,我们先要将最新获得的信息组织成地图文档后再对外发布服务,这样一来只要有更新的信息就要重复前面的工作,不仅地图服务维护的工作量比较大,而且无法让公众在第一时间了解这些信息。

动态图层并不是在Server端直接添shape、raster、filegdb、database等资源,它需要依附于一个开启动态图层的地图服务。然后,把数据资源所在位置注册为这个地图服务的动态工作空间。最后,在Web端调用时指定图层关联的数据源以图层符号化等。

1.2 适用场景

根据需要选择是否允许服务器的客户端动态更改地图服务中的图层外观和行为。要确定哪些图层显示在地图中、图层符号系统、图层顺序和位置以及标注等,可通过使用动态图层在服务器端实现。因此,适用于以下两种情况:

1)改变现有图层:符号,渲染方式和版本,这些都可以通过客户端请求的时候给定相应的参数来进行设置,从而来达到轻易改变地图的效果。

2) 添加地图服务中没有的图层:添加的数据可以是矢量数据也可以栅格数据,还可以是一个通过sql查询出来的结果,或者是两个表关联的关联结果。矢量的数据可以是shapefile,filegdb,或者sde中的数据。栅格数据可以是esri能直接识别的栅格数据格式。

2 动态图层

2.1 共享地图服务







2.2 动态工作空间添加



2.2.1 企业级数据库

选择了数据库,则可以指定想要使用的数据库连接并单击导入 > 浏览。可以选择锁定用户可以访问的数据库版本。为此,选择锁定版本。



2.2.2 shapefile文件夹

选择了 Shapefile,则输入包含想要使用的 Shapefile 的文件夹的路径。



2.2.3 栅格文件夹

选择了栅格,则输入包含想要使用的栅格的文件夹的路径。



2.2.4 文件地理数据库

选择了文件地理数据库,则输入想要使用的文件地理数据库的路径。请记住,稍后需要将图层添加到该地理数据库。



2.3 发布服务



2.4 Server端设置

1)登陆ArcGIS Server Manager,并打开已发布的地图



2)添加动态工作空间,并点击REST URL链接



3)验证动态工作空间是否发布



4)验证动态图层是否可以成功发布

{
//id自设
"id": 1,
"source": {
"dataSource": {
//工作空间id
"workspaceId": "Test00",
//源数据名
"dataSourceName": "ltest.sde.test",
//栅格raster,矢量table
"type": "raster / table"
},
//mapLayer对已有图层动态修改,dataLayer向动态工作空间叠加服务图层
"type": "mapLayer / dataLayer"
}
}



5)点击“导出地图”(续2.4第三步)



6)导出动态地图

2.5 效果展示

2.5.1 企业级数据库

1)准备数据

2)发布地图服务,参见本文2.1-2.3

3)向动态工作空间新增数据并测试

矢量数据





栅格数据



2.5.2 shapefile文件夹

1)准备数据



2)发布地图服务



3)向动态工作空间新增数据并测试





2.5.3 栅格文件夹

1)准备数据



2)发布地图服务



3)向动态工作空间新增数据并测试





2.5.4 文件地理数据库

与企业级数据库类似。

2.6 服务调用

3.x与4.x版本源码迥异,参考API指南进行编辑

2.6.1 本地服务

前往ArcGIS API for JavaScript下载页获取需要的API版本,并将其解压到本地项目中。

2.6.2 托管服务

托管服务直接引用ArcGIS在线js类库,优点为不用下载API文件,缺点为偶尔可能加载较慢。

2.6.3 图层渲染

渲染器可以为特征图层或者图形图层定义一组符号,ArcGIS API For JS中有五种不同的渲染器,SimpleRenderer、ClassBreaksRenderer、UniqueValueRenderer、DotDensityRenderer和TemporalRenderer五种,无论那种渲染都要创建渲染示例,定义渲染符号,最后将渲染器添加到图层,详细内容参见ArcGIS API For JS 之render(符号渲染)

2.6.4 测试案例

感谢网友无私的分享,大家记得一定star哈!

https://github.com/xinligis/AGS-JSAPI-Samples/tree/master/动态图层

2.7 故障排查

1)发布地图服务时,提示“无法注册文件夹到server上”

解决方案: 把文件夹注册到server上目的是让server从该文件夹访问数据,那么就得保证server对data具有访问权。因此必须设置data共享账户中包括ArcGIS Server Account。



2)动态图层工作空间为企业级数据库,新增动态图层验证错误



解决方案: 查证数据库连接字符串信息,若连接的数据库不匹配则重新导入



3)动态空间栅格图层,前端显示配色不正确



解决方案: 参考关于ArcGIS动态图层空间内栅格数据,JS前端显示颜色不正确的解决方案,动态空间文件夹的栅格数据,ArcGIS Server仅仅做最基础的显示,不做任何拉伸。因此,需要将栅格数据拉伸处理并存入到动态工作空间。



3 参考资料

  1. 关于动态图层
  2. 使用动态图层在服务器端渲染
  3. arcgis server 10.1 发布动态图层展示海量及频繁更新的数据步骤
  4. ArcGIS Server10.1 动态图层服务
  5. 【转】ArcGIS Server 10.1 动态图层
  6. 【转】ArcGIS Server 10.1 动态图层—添加栅格
  7. ArcGIS Server 10.1动态图层 以及Windows Phone/Silverlight客户端实现
  8. 下载并部署 ArcGIS API for JavaScript 4.10
  9. 初识:ArcGIS API for JavaScrip
  10. ArcGIS_api_for_js_添加动态图层
  11. ArcGIS API For Javascript之动态图层
  12. arcgis server for javacript 动态创建矢量、栅格图层

ArcGIS Server 动态图层发布调用图解的更多相关文章

  1. arcgis server 10.1 发布动态图层展示海量及频繁更新的数据步骤

    Arcgis server  发布动态图层及调用动态图层 做这个动态图层功能的原由是 有一个30万的数据需要通过arcgis GP工具转成shp然后渲染加载进地图,原来的做法是遍历生成shp面要素,读 ...

  2. ArcGIS Server 10.1发布GP服务

    ArcGIS Server 10.1发布GP服务 ArcGIS Server 10.1发布GP服务确实更简单了,只是刚使用不怎么习惯.ArcGIS Server 10.1发布GP服务需要先在ArcCa ...

  3. ArcGIS Server GP服务发布与测试(基础版)

    版本:ArcGIS Server 10.4    环境:win10 测试目标:创建一个GP服务,功能为根据要素属性信息(如FID)选择出输入内容的对应匹配要素. 注:这个测试非常基础,仅供新手发布GP ...

  4. ArcGIS Server 10.1发布数据源为ArcSDE(直连)的MXD【转】

    因为ArcSDE10.1基本默认直连,所以我们在发布直连的MXD仍然需要注意相关的事宜. 1:保证两台机器都能够访问共享存储的信息 2:确保已UNC路径保存ArcCatalog的文件夹连接,而且直连的 ...

  5. ArcGIS Server API for JavaScript调用错误:已阻止跨源请求:同源策略禁止读取位于......

    已阻止跨源请求:同源策略禁止读取位于 http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapSe ...

  6. ArcGIS Server 10.1发布要素服务(FeatureLayer server)时遇到的数据库注册问题

    在发布要素服务的最后一步遇到了一个问题: SEVERITY STATUS CODE DESCRIPTION NAME TYPE DATA FRAME High Unresolved 00090 Fea ...

  7. arcgis api for silverlight开发系列之二:缓存图层与动态图层及图层总结 .

    本文摘自:http://blog.csdn.net/leesmn/article/details/6916458(很优秀的博客)   作为ESRI的平台的一份子arcgis api for silve ...

  8. Arcgis Server发布服务

    提到Arcgis Server 服务的发布,做起来貌似很简单,就算电脑再卡,只要鼠标还能点,一个小时肯定能搞定,但是当你遇到问题的时候,就头大了,也许搞上个一两天都摸不着头脑,最后你采取的措施可能是一 ...

  9. 修改arcgis server默认js和css连接地址

    当使用ArcGIS Server 10.1发布了一个地图服务之后,在ArcGIS Server 10.1的机器上使用浏览器进入http://localhost:6080/arcgis/rest/ser ...

随机推荐

  1. 在vuex的mutations中使用vue的小技巧

    问题: 在vuex组件中的mutations属性中的定义的函数,有时会要用到vue这个对象.正常在其他的地方使用是通过this这个变量来获取,但是在mutations定义的函数中this指定的是Vue ...

  2. P1066 汪老师玩卡片

    题目描述 汪老师得到了一些卡片,这些卡片上标有数字0或5.现在他可以选择其中一些卡片排成一列,使得排出的一列数字组成的数最大,且满足被90整除这个条件.同时这个数不能含有前导0,即0不能作为这串数的首 ...

  3. linux 安装一个共享的处理者

    共享中断通过 request_irq 来安装就像不共享的一样, 但是有 2 个不同: SA_SHIRQ 位必须在 flags 参数中指定, 当请求中断时. dev_id 参数必须是独特的. 任何模块地 ...

  4. H3C查看、删除已经保存配置文件--用户图示(console)以上

    <H3C>display saved-configuration    //显示已经保存的内容 <H3C>reset saved-configuration      //删除 ...

  5. 【52.55%】【BZOJ 4520】K远点对

    Time Limit: 30 Sec  Memory Limit: 512 MB Submit: 588  Solved: 309 [Submit][Status][Discuss] Descript ...

  6. JavaSE基础---异常

    异常 Throwable----具备可拋性:就是该体系中的类和对象都可以被关键字throw或throws所操作. |---Error ---错误,一般不编写针对性处理方式 |---Exception- ...

  7. Jmeter阶梯加压监听

    巧用beanshell,做阶梯加压监听 1. 首先先添加阶梯加压线程组  bzm - Concurrency Thread Group 设置阶梯加压值,目标最大并发用户为80,加速步率时长为100秒, ...

  8. MySQL基础篇(03):系统和自定义函数总结,触发器使用详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.系统封装函数 MySQL 有很多内置的函数,可以快速解决开发中的一些业务需求,大概包括流程控制函数,数值型函数.字符串型函数.日期时间函数 ...

  9. rest_framework框架之认证功能的使用和源码实现流程分析

    rest_framework框架之认证的使用和源码实现流程分析 一.认证功能的源码流程 创建视图函数 Note 创建视图函数后,前端发起请求,url分配路由,执行视图类,视图类中执行对应方法必须经过d ...

  10. java引用类型的浅拷贝与深拷贝理解

    1.浅拷贝 只会复制地址值,也就是同一个对象两个引用,只是复制了一个引用而已. 2.深拷贝 重新在堆里创建一个新对象给新引用,连同地址值也不一样. 首先要知道Object的clone()方法, pub ...