目的:
1.arcgis server9.2 ADF实现Select Features功能

准备工作:
1.用ArcGis Server Manager或者ArcCatalog发布一个叫world的Map Service,并且把这个Service启动起来。
2.找到DeveloperKit\SamplesNET\Server\Web_Applications目录下的Common_SelectBufferToolCSharp.zip。

开始:
1.新建名为SelectTool的ASP.NET Web应用程序,  然后在页面上添加MapResourceManager1、Map1、Toolbar1、Toc1控件。同时对这些控件做相应的设置,这个已经做了很多次了这里不详细说了,具体可以看前面的几篇文章。
2.MapResourceManager1的MapResourceItem总共有3个从最上层往下分别是Buffer(GraphicsLayer,用来缓冲选择元素高亮显示用)、Selection(GraphicsLayer,用来选择元素高亮显示用)、Data Layers(ArcGIS Server Local,就是显示上面发布的world的Map Service)。
3.Toolbar1中添加一个Tool,Name为Select;Text为Select Features;ToolTip为Select Features;ClientAction为DragRectangle;ServerActionAssembly为SelectTool;ServerActionClass为SelectTool.SelectTool。
4.新建SelectTool.cs文件,在这个文件中编写SelectTool类来实现Tool的ServerActionClass。SelectTool类需要实现IMapServerToolAction的接口,实现这个接口必须实现ServerAction的方法。具体代码如下:

1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)namespace SelectTool
2}
5.接下来在ServerAction的方法添加框选查询把结果进行高亮显示的代码,具体代码和说明如下:
 1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)void IMapServerToolAction.ServerAction(ToolEventArgs args)
 2        }
6.加入目标图层的选择功能首先在Default的Page_PreRender方法中绑定可以供选择的图层,具体说明和代码如下:
 1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)protected void Page_PreRender(object sender, EventArgs e)
 2 
7.接下来加入目标图层选择后把选择值存入到Session["TargetLayer"] 中。因为是页面无刷新的执行需要实现ICallbackEventHandler接口。首先是Page_Load事件,具体说明和代码如下:
 1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)public string sADFCallBackFunctionInvocation;
 2ArcGIS.Server.9.2.DotNet自带例子分析(六、一)        private string returnstring = "";
 3ArcGIS.Server.9.2.DotNet自带例子分析(六、一)
 4ArcGIS.Server.9.2.DotNet自带例子分析(六、一)        protected void Page_Load(object sender, EventArgs e)
 5        }
8.接下来Default.aspx切换到HTML视图添加ChangeDDLContext()脚本方法,具体代码和说明如下:
 1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)<script language="javascript" type="text/javascript"> 
 2ArcGIS.Server.9.2.DotNet自带例子分析(六、一)         var context;
 3ArcGIS.Server.9.2.DotNet自带例子分析(六、一)         //选择目标图层的方法
 4ArcGIS.Server.9.2.DotNet自带例子分析(六、一)         function ChangeDDLContext()
 5script>
9.接下来进行服务端的功能处理,具体的说明和代码如下:
 1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)//把服务端的处理结果返回给客户端
 2ArcGIS.Server.9.2.DotNet自带例子分析(六、一)        public string GetCallbackResult()
 3        }
9.这样就完成了框选并且高亮显示被选中的地理元素。接下来要做的功能就是在上面的基础上把框选的结果同时显示在GridView中。
10.在页面上添加ID为griddiv的DIV,然后在这个DIV中添加一个GridView1,同时给griddiv添加style="visibility: hidden; ",使得这个DIV默认不显示,添加一个CheckBox1用来设置是否把结果显示在GridView中。
11.接下来对SelectTool类的ServerAction方法进行修改添加数据在GridView中显示的功能,具体的代码和说明如下:
 1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)void IMapServerToolAction.ServerAction(ToolEventArgs args)
 2        }
12.接下拉修改Page_Load方法添加CheckBox1的客户端事件,修改后的代码如下:
 1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)public string sCallBackFunctionInvocation;
 2ArcGIS.Server.9.2.DotNet自带例子分析(六、一)        private string returnstring = "";
 3ArcGIS.Server.9.2.DotNet自带例子分析(六、一)        public string sADFCallBackFunctionInvocation;
 4ArcGIS.Server.9.2.DotNet自带例子分析(六、一)
 5ArcGIS.Server.9.2.DotNet自带例子分析(六、一)        protected void Page_Load(object sender, EventArgs e)
 6
13.接下来Default.aspx切换到HTML视图添加CheckBox1的点击事件ChangeCheckContext()脚本方法,具体代码和说明如下:
 1ArcGIS.Server.9.2.DotNet自带例子分析(六、一)function ChangeClient()
 2         }
14.修改服务端的RaiseCallbackEvent方法处理客户端脚本ChangeCheckContext()的请求,具体说明和代码如下:
        }
15.调试运行查看效果,这样框选功能就完成了。本例子剩下的BufferSelect功能下篇在写。
ArcGIS.Server.9.2.DotNet自带例子分析(六、一)

相关文章:

  • 2021-08-26
  • 2021-09-03
  • 2022-02-28
  • 2022-02-07
  • 2021-07-26
  • 2021-07-09
  • 2021-07-14
  • 2021-12-04
猜你喜欢
  • 2021-10-25
  • 2022-01-26
  • 2022-02-13
  • 2022-03-07
  • 2022-02-17
  • 2022-02-08
  • 2021-07-19
相关资源
相似解决方案