ArcGIS动态图层

ArcGIS Runtime 加载SHAPE数据的另一种方式-动态图层 ArcGIS 10.1中有一个新的功能就是动态图层(NOT DynamicLayer,动态地图服务),该动态图层简单的说,就是向一个动态服务注册一个工作空间,该工作空间中含有shape,栅格等数据,这样的话,客户端可以通过API获取这个工作空间下的所有shape数据,并可以对其进行渲染。ArcGIS Runtime和ArcGIS Server的架构类似,而API也十分相像,ArcGIS Runti 阅读详情

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参数,也就是说可以对动态图层进行查询。

ArcgisServer屏蔽服务访问页面等安全漏洞 1 信息遍历 通过Arcgis Server自身配置进行设置。本机测试通过。 1.1 配置步骤 打开如下地址 http://ip:6080/arcgis/admin/system/handlers/rest/servicesdirectory 点击 edit,将Services Directory Enabled 的勾选去掉,保存。 1.2 设置后效果 2 不安全的域传送漏洞 删除Arc... 阅读详情

相关推荐

ArcGIS DynamicLayer

ArcGIS DynamicLayer Sample Code

ArcGIS Server 10.1新特性系列---动态图层

ArcGIS Server 10.1新特性里面有几个新功能是非常棒的,其中有一个就是动态图层。动态图层不是一种新发明的图层,而是说在arcgis server的web应用中可以动态的配置其渲染和内容功能的图层,动态mapservice中的图层都可以通过相应的配置使其成为动态图层。动态图层的功能的产生是mapservice的核心功能进行增强的结果。 动态图层功能的产生背景: 先提出两个需求: ...

weixin_30647065的博客 652

保姆级教程:用Docker快速部署mpromonet/webrtc-streamer实现WebRTC直播(附常见问题解决)

本文提供了一份详细的Docker部署mpromonet/webrtc-streamer的实战指南,帮助用户快速搭建WebRTC直播服务。内容涵盖从环境准备、基础部署到进阶配置与性能调优的全过程,并针对容器网络、视频流配置、跨网访问等常见问题提供了解决方案,旨在实现低延迟的流媒体传输。

dell8的博客 177

动态图层MapImageLayer - dynamic data layer with table join

动态地图图层是即时生成的图片,而不是在服务器上预先缓存的图片。当用户向服务器请求地图服务时,服务器根据接收到的参数调用底层服务。服务器根据接收到的参数调用底层服务,底层服务经过参数计算,实时地生成像素点,这些像素点构成图片,返回服务器,服务器再传递给用户端。动态图层的优点在于当用户需要实时数据(如某地段的交通流量分析)时,数据更新及时;缺点是显示效果较差,整个服务出图较慢。

花姐夫JUN的博客 1097

Python爬取京东商品数据保姆级教程(附源码及效果图)

本文介绍了一个基于Python的京东商品数据爬取教程,适合入门级开发者使用。文章详细讲解了从安装依赖库(DrissionPage、pandas等)到完成数据爬取的全过程,包括:1. 模拟用户搜索操作;2. 解析商品标题、价格、销量等关键信息;3. 处理复杂数据格式(如转换万级销量);4. 数据存储与Excel导出。教程提供了完整的封装函数,支持自定义搜索关键词和爬取数量,并包含错误处理和多种元素定位方式。最终数据会按时间戳命名导出为Excel文件,方便用于课程作业或毕业设计。

weixin_46449236的博客 1874

Halcon实战:5种边缘检测算子对比(Sobel、Roberts、Prewitt、Kirsch、Canny)

本文深入对比了Halcon中Sobel、Roberts、Prewitt、Kirsch和Canny五大边缘检测算子的实战表现与核心差异。通过工业图像实例与代码解析,提供了基于噪声水平、边缘连续性及实时性要求的场景化选型指南,帮助工程师精准选择最适合的算子以优化视觉检测流程。

weixin_29266007的博客 391

动态图层的实现

在GIS中,所谓“动态图层”就是位于地图最上层且刷新很快的图层。通常为点图层,用于显示那些实时刷新的信息。这样,就产生了两个问题:一,为什么动态图层位于地图最上层;二,如何作到刷新很快。下面就以GPS车辆监控为例加以说明。 假设屏幕内需要显示的GPS车辆监控点有500个,为了实时反映每辆车的最新状态,只要获得任何一辆车最新的GPS位置信息,就要进行全图刷新,通常也就是说,要能够作到一秒钟内能刷新...

weixin_30808693的博客 229

告别手动改代码!用SSC工具5分钟搞定EtherCAT从站动态模块配置(含Excel模板)

本文详细介绍了如何利用SSC工具和Excel模板实现EtherCAT从站动态模块配置的自动化流程。通过零代码修改的动态配置方案,大幅提升工业自动化产线的灵活性和效率,配置时间从平均4小时缩短至8分钟,错误率下降96%。文章包含Excel模板设计、实战演示和避坑指南,助力工程师快速掌握这一高效工具。

weixin_28339967的博客 568

MapServer动态图层、瓦片图层ArcGIS、Cesium中加载区分

问题来源:有个网友问如何调用arcgis的api将图层组的子图层全部显示出来。MapServer 既可用动态图层方式,也可用瓦片方式加载如何判断区分动态图层和瓦片图层首先,瓦片又区分矢量瓦片与栅格瓦片,常见的MapServer。MapServer 既可用动态图层方式,也可用瓦片方式加载。通常使用 Dynamic Map Service(动态地图服务)来发布。Dynamic Map Service 提供了一个动态地图图层,它会在客户端请求时动态生成地图图像。

debbie_luo1211571826的博客 2821

【环境搭建】使用openSfM+MVSNet重建稠密点云

本帖详细介绍了如何使用openSfM+MVSNet对真实采集的数据进行稀疏重建与稠密重建,并针对一些真实场景下可能遇到的问题进行了整理。

YuhsiHu的博客 1971

C++ Qt6 QtQuick/QML入门进阶与项目实战视频教程

C++ Qt这些年在PC客户端、嵌入式、汽车座舱仪表等领域应用很广泛,例如剪映专业版、微信4.0、亿图脑图、Steam、美图秀秀、腾讯会议、钉钉(部分模块)等都是使用C++ QWidget/QML开发。特别是QML这种声明式UI开发更加快捷,QML的界面开发效率相对于QWidget更快速,界面效果更好,QtQuick/QML在Qt6版本也逐渐完善了,使用QML进行客户端开发是个不错的选择。

琅嬛福地 4487

Cesium中实现仿ArcGIS三维的动态图层加载方式

并将切割出来的内容更新至瓦片的缓存中。如果不更新缓存,那么当重新显示已缓存的瓦片时,其内容会和当前的图片对应不上 )如果你在 Cesium 中加载过 ArcGIS 的动态图层,你会发现,Cesium 对于动态图层仍然采用类似切片图层的逻辑进行加载。事实上,我尝试过,但是由于需要同时更新的瓦片比较多,就会导致 export 请求回来的两张图片都需要复制一份到各自的 WebWorker 中,这样会导致更严重的内存问题。,需要做的额外操作只有在第二张大的图片中,挖去和小图片相交的部分。

weixin_43481439的博客 1394

部分旧版统信国产系统下载资源

注:全部自来网络查找,建议到官网下载最新版。

aggs1990的专栏 5235

ArcGIS动态图层问题

以下内容为项目上原来的实现方式,即通过指定动态工作空间中的shapefile渲染图层,新的实现方式将改为使用GeoJSON。 ========================================== 使用动态图层服务 ——即带有“动态工作空间”的地图服务,如下图 访问REST URL,可以看到有如下内容: 客户端使用arcgis api fo...

wsdhla的专栏 840

KVM — 与 QEMU 和 Libvirt 的关系

目录目录 前言 KVM QEMU KVM 与 QEMU qemu-kvm Libvirt Libvirt 在 OpenStack 中的应用前言如果是刚开始接触虚拟机技术的话, 对上述的概念肯定会有所混淆, 傻傻的分不清. 尤其在看虚拟化技术文档时导致理解能力下降, 所以在开始学习虚拟化技术之前对这些概念有一个整体的认识和清晰的理解, 就显得很有必要了.KVMKVM(Kernel-basedVirtu

烟云的计算 5736

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

10-ArcGIS API For JavaScript动态图层

一、前言 ArcGIS 10.1版本之后,提供了一种新的功能:动态图层。准确的说,动态图层并不是一种新的地图服务,它更像是地图服务(MapServer)的一种扩展。动态图层主要特点是:(1)改变地图服务的现有图层;(2)动态图层适用于海量图层的情况;(3)不需要将 shp 文件发布为服务,服务器可以之间读取 shp 文件在前端显示; 二、调用动态图层 在前面已经说过动态图层并不是一种新的服务...

Ocean111best的博客 938

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

arcgis动态图层mysql_利用动态图层实现数据的实时显示

1开启动态显示功能;2 创建自定义的动态图层并重写相关的绘图方法(上面提到的第一种方式);3在Map中添加自定义的动态图层;4 实时数据的传递.1.7.1开启动态地图功能voidInitMap(){IAGSServerObjectNamepServerObjectName = GetMapServer("http://services.arcgisonline.com...

weixin_36383052的博客 323

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

arcgis动态图层mysql_利用动态图层实现数据的实时显示(arcEngine IDynamiclayer)

说明:最近一个项目用到这方面知识,文章主要来至网络,后期会加入自己的开发心得。(以下的代码实例中,地图开样子是采用ADF开发)1前言不刷新地图而能让数据实时显示,这在ArcGIS中已经不在是一个困扰我们的难题,在ArcGIS Engine的开发过程中,每一次更新数据后都需要刷新才能,更改大量数据并不断的刷新,让用户在静静的等待,这不是很痛苦吗?为此ArcGIS提供了一个动态图层,专门用于解决这样问...

weixin_39997696的博客 340

ArcGIS API For Javascript之动态图层

引言 调用动态图层 1启用动态图层 2Web端调用 21 代码实现 22 完整代码 动态图层的属性查询 1方法1通过click直接获取 11代码实现 12全部代码 2通过查询获得属性 21代码实现 22全部代码 补充 1 启用文件地理数据库三点不同 1.引言      在ArcGIS 10.1版本之后,ArcGIS提供了一种新的功能:动态图层。准确的说,动态图层并不是一种新的地图服务,它更像是地图服

u012123612的博客 4301

(十)ArcGIS API For Javascript之动态图层

引言 调用动态图层 1启用动态图层 2Web端调用 21 代码实现 22 完整代码 动态图层的属性查询 1方法1通过click直接获取 11代码实现 12全部代码 2通过查询获得属性 21代码实现 22全部代码 补充 1 启用文件地理数据库三点不同 1.引言 在ArcGIS 10.1版本之后,ArcGIS提供了一种新的功能:动态图层。准确的说,动态图层并不是一种新的地图服务,它更像是地图服

王培晓Carpenter 1万+

openlayers加载arcgis动态图层服务

openlayers加载arcgis动态图层服务 点击查看文章 转载于:https://www.cnblogs.com/dqygiser/p/9707144.html

aodao8891的博客 997

arcgis动态发布服务器文件夹,ArcGIS Server 动态图层发布调用图解

@1 前言1.1 简介动态图层并不是在Server端直接添shape、raster、filegdb、database等资源,它需要依附于一个开启动态图层的地图服务。然后,把数据资源所在位置注册为这个地图服务的动态工作空间。最后,在Web端调用时指定图层关联的数据源以图层符号化等。1.2 适用场景根据需要选择是否允许服务器的客户端动态更改地图服务中的图层外观和行为。要确定哪些图层显示在地图中、图层符...

weixin_29029731的博客 2205

ArcGIS api for js关于动态图层加载的记录

arcgis api 4.x加载动态图层是通过MapImageLayer,该类存在子图层属性sublayers,有以下情况需要注意!

u010395721的博客 1110

arcgis动态图层mysql_ArcGIS JavaScript API动态图层

?矢量动态图层???Test MapvararcgisApiBaseUrl= "http://172.16.2.17:8080/arcgis_js_api/library/3.26/3.26";html,body,#map{height: 100%;width: 100%;margin: 0;padding: 0;}require(["esri/config","esri/map","esri/l...

weixin_39627390的博客 139

动态图层在ArcGIS 10中的一些改进

动态图层在ArcGIS 10中的一些改进

阿翔 3641
上一篇: 通过Python脚本自动发布ArcGIS服务
下一篇: ArcGIS Server动态创建MapServer
engineer_he
博客等级 码龄10年 109粉丝 14原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值