ArcGIS Server10.1 动态图层服务

动态图层的应用场景:

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的话就是文件目录。这些信息都会在添加数据的时候用到的。如下图:

接下来是重点在客户端如何调用本文用Arcgis API for JavaScript。首先dojo引入必要的库

        dojo.require("esri.map");
        dojo.require("esri/layers/ArcGISDynamicMapServiceLayer");
        dojo.require("esri/layers/DynamicLayerInfo");
        dojo.require("esri/layers/LayerDataSource");
        dojo.require("esri/layers/LayerDrawingOptions");
        dojo.require("esri/layers/TableDataSource");
        dojo.require("esri/renderers/SimpleRenderer");
        dojo.require("esri/symbols/SimpleFillSymbol");
        dojo.require("esri/symbols/SimpleLineSymbol");
        dojo.require("dojo/dom");
        dojo.require("dojo/dom-construct");
        dojo.require("dojo/dom-style");
        dojo.require("dojo/parser");
        dojo.require("dojo/query");
        dojo.require("dojo/_base/array");
        dojo.require("esri/Color");
        dojo.require("dojo/dnd/Source");
        dojo.require("dijit/registry");
        dojo.require("dijit/form/Button");
        dojo.require("dijit/layout/BorderContainer");
        dojo.require("dijit/layout/ContentPane");
        dojo.require("dojo/domReady!");

然后添加地图

 var shengLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/MyMapService/MapServer", { "id": "mymaplayer" })
myMap.addLayer(shengLayer);

接下来是重要的点击事件

function AddDynamicLayer1() {

            var layerName, dataSource, layerSource, options, drawingOptions, dynamicLayerInfos;

            // layer name in the workspace
            layerName = "SHI";
            // get existing layer info
            // lakes info will be appended to this object so it shows up in the map service image
            //
            // only use createDynamicLayerInfosFromLayerInfos
            // if layers haven‘t been re-ordered yet
            if (!dynamicLayerInfos) {
                dynamicLayerInfos = myMap.getLayer("mymaplayer").createDynamicLayerInfosFromLayerInfos();
            }

            // create a new dynamic layer info object for the lakes layer
            var dynamicLayerInfo = new esri.layers.DynamicLayerInfo();
            dynamicLayerInfo.id = dynamicLayerInfos.length;
            dynamicLayerInfo.name = layerName;
            // can also set things like min/max scale to specify scale
            // dependency on the new dynamic layer

            // create a table data source to access the lakes layer
            dataSource = new esri.layers.TableDataSource();
            dataSource.workspaceId = "dongtai1"; // not exposed via REST, sad face :(
            dataSource.dataSourceName = layerName;
            // and now a layer source
            layerSource = new esri.layers.LayerDataSource();
            layerSource.dataSource = dataSource;
            dynamicLayerInfo.source = layerSource;
            dynamicLayerInfos.push(dynamicLayerInfo);
            // set new infos, but don‘t refresh
            // map will be updated when the drawing options are set
            myMap.getLayer("mymaplayer").setDynamicLayerInfos(dynamicLayerInfos, true);

            drawingOptions = new esri.layers.LayerDrawingOptions();
            drawingOptions.renderer = new esri.renderer.SimpleRenderer(
              new esri.symbol.SimpleFillSymbol("solid", new esri.symbol.SimpleLineSymbol("solid", new dojo.Color([255, 0, 255, 0.75]),5),
                new dojo.Color([255, 0, 255, 0.75]) // fuchsia lakes!
              ));
            options = [];
            options[1] = drawingOptions;

            myMap.getLayer("mymaplayer").setLayerDrawingOptions(options);

        }

完成,本人是用shp文件。使用sde数据库时候要安装32和64位的oracle客户端,不然注册数据库会失败。(一般安装完成后要重启)

唉,以前写的挺详细的,结果没发布。今天花几分钟快速写一下。好了 午休了  安~~~

时间: 2024-10-08 21:09:36

ArcGIS Server10.1 动态图层服务的相关文章

ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务

1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2.ArcGIS Server介绍与安装 1.ArcGIS Server 是功能强大的基于服务器的 GIS 产品,用于构建集中管理的.支持多用户的.具备高级GIS功能的企业级GIS应用与服务,如:空间数据管理.二维三维地图可视化.数据编辑.空间分析等即拿即用的应用和类型丰富的服务.ArcGIS Serv

ArcGIS JavaScript API动态图层

? 矢量动态图层 ? ? <!DOCTYPE HTML> <html> ? <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Test Map</title> <link rel="stylesheet" href="http://172.16

arcgis server10.2发布地图服务报错

发布地图服务时,读取了本机电脑中的切片方案.发布服务,报打包成功,但发布失败错误. 解决办法:给arcgis账户,赋予读写权限即可.重复发布服务,成功发布.

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

转自原文 arcgis server 10.1 发布动态图层展示海量及频繁更新的数据步骤 Arcgis server  发布动态图层及调用动态图层 做这个动态图层功能的原由是 有一个30万的数据需要通过arcgis GP工具转成shp然后渲染加载进地图,原来的做法是遍历生成shp面要素,读取面的环状点然后转成json,这个也能实现结果但是时间较长,与预期的时间差别较多,在公司内部讨论时有提到这个动态图层可以解决海量频繁数据的替换,要是每个都发一个图层服务这样不可取.故此讨论后研究这个神奇的功能.

ArcGIS Server10.1之服务新特性(WMTS1.0.0) 【转】

http://blog.csdn.net/esrichinacd/article/details/7825587 ArcGIS Server10.1正式支持OGC的WMTS1.0.0版本标准,那么如何使用WMTS服务呢? 一:发布标准的动态服务并且生成缓存,这个过程在这里就不再赘述 二:查看WMTS服务信息,如此一来就意味着只要生成地图缓存服务自动就支持WMTS服务.获取描述信息地址如下:http://myserver:6080/arcgis/rest/services/servername/M

ArcGIS Server10.2服务启动不了之http://localhost:6080/arcgis/manager无法打开之arcMap 无法打开6080admin问题解决之路

遇到的问题:在services.msc中可以正常启动arcGIS server ,但是过几秒种服务就自动关闭, 而且manager打不开, 各种方法都试过了,什么关闭杀毒软件,更改服务配置文件,更改arcGIS server的服务属性为自动,手动,恢复自动重启等等,统统没起作用. 1.最后参考这篇博文http://www.cnblogs.com/myyouthlife/p/4255311.html 2.卸载了arcGIS server10.2(卸载之前按照http://blog.csdn.net

arcgis server10.2.2发布地图基础服务的具体步骤

原文:arcgis server10.2.2发布地图基础服务的具体步骤 1.直接打开制作好的.mxd文档,比如这里: 2.打开mxd文档之后,打开菜单:file-share as -services 弹出地图发布服务的界面: 点击publish之后,耐心的等待一段时间,地图服务就发布好了,地图服务成功之后,可以在浏览器查看: (1) (2) (3) 到此地图服务发布结束! 备注: GIS技术交流QQ群:432512093

ArcGIS Server 10.2 实战(四)格栅动态配色服务

当你的地理处理服务输出的是格栅,那个不可避免地需要为格栅的各类型数据添加不同色彩进行区分,而默认时格栅的色彩是随机的,或者固定死一套着色方案是也显得不够人性化,难以满足多样的客户需求,下面谈谈如何解决这一格栅动态配色的问题. 首先需要做的是,为你所需要的格栅配色方案都arcmap上实现一遍, 然后右键格栅,选择属性,符号系统标签,色彩映射表 单击左下方的色彩映射表的小三角,选择导出色彩映射表,命名为*.clr. 做好一套色彩映射表后,就可以创建动态配色的模型了. 使用数据管理工具>格栅>格栅属

ArcGIS Server中的各种服务

文章转载自:http://www.newnaw.com/pub/ags93/typesofservices.htm ArcGIS Server中的各种服务 使用服务 通过服务可以在客户端之间更容易的共享资源.通过服务可以保证所有的客户端访问到同样的资源,而不用在他们的机器上单独进行安装. 服务器存储着资源,管理服务,进行GIS相关工作,将结果通过图片或者文字的形式返回给客户端. 要使用服务,并不需要安装单独的GIS软件,用普通的Web浏览器或者自定义的应用程序即可.但ArcGIS的应用程序,比如