`

ArcGIS Server 开发初步 -- 自定义工具

阅读更多

ArcGIS 9.2 Server Enterprise for Windows自定义工具

在Server生成的Web App中,页面的工具按钮可以分为两类:

l命令(Command):A command is an element on a JSP page that triggers a server side action without any further interaction on the client. An example of a command in the sample application is the "zoom to full extent" button. Once the user clicks the button, a method is called on the server。不与用户通过界面交互。
l工具(Tool):A tool has further client side interaction before calling a method on the server. An example of a tool in this application is "zoom to rectangle". Once the user clicks the button, drags a rectangle over the map indicating the area they want to zoom to, and then a method is called on the server。与用户通过界面交互。

自定义工具

一、继承接口
public Interface com.esri.adf.web.faces.event.MapToolAction{
             void execute(MapEvent event);
}
lMapToolAction 接口代表由MapControl控件事件所激活的服务器端工具,系统已预设继承此接口的类:
PanToolAction(平移),
ZoomInToolAction(放大),
ZoomOutToolAction(缩小)
lMapControl 创建MapEvent 事件并将其传给继承接口的工具类的 execute(MapEvent) 函数,The business logic for the tool should be implemented in this method according to the event。

二、工具在JSP页面上的tag表达如下:


[Copy to clipboard]CODE:

<ags:tool 
serverAction="com.esri.adf.web.faces.event.ZoomInToolAction"  
clientAction="EsriMapRectangle" 
clientPostBack="true"
/>

 


三、注册managed-bean将所写的类作为一个managed-bean注册到faces-config.xml,并用WebContext实例作为其初始化参数:

[Copy to clipboard]CODE:
<managed-bean>
<managed-bean-name>ToolClass</managed-bean-name>
<managed-bean-class>com.brsc.MyToolClass</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
       <property-name>webContext</property-name>
       <value>#{mapContext}</value>
</managed-property>
</managed-bean>

 

四、注释:
1.  JSP的Tag中serverAction写入继承MapToolAction接口的类(全称),代表对于此工具服务器端要进行的操作[ execute(MapEvent event)]
用户也可以使用任何Managed Bean的函数作为工具对应的方法,只要这个函数使用如下声明:
public void anyMethodName(MapEvent event)
JSP标签使用serverMethod ,如下:
<ags:tool serverMethod="#{bean.anyMethodName}" ... />
这样,MapControl也会将适当的MapEvent 事件传入此函数。

2.  JSP的Tag中clientAction写入客户端鼠标选择的方式:

[Copy to clipboard]CODE:
EsriMapPoint          点选
EsriMapLine           线
EsriMapRectangle    四边形
EsriMapCircle         圆
EsriMapOval           椭圆
EsriMapPolyline      多线
EsriMapPolygon      多边形
EsriMapPan            移动 

 对应Server端的几何形状(附图)

3.  MapEvent代表客户端进行操作产生的事件,一般会用到MapEvent的
public WebGeometry getWebGeometry()函数来得到客户端输入的几何形状
//Returns the WebGeometry in screen coordinates corresponding to
//the client action performed by the user.
来获得客户端产生的形状,这些Geomentry一般都是screen坐标,需要用toMapGeometry(WebMap)转换为 地图坐标 。
一般操作如下:

[Copy to clipboard]CODE:
public void myToolMethod(MapEvent event) {
  WebContext ctx = event.getWebContext();
  WebGeometry screenGeom = event.getWebGeometry();
  WebGeometry mapGeom = screen.toMapGeometry(ctx.getWebMap());
  ...
}

 

4.  JSP的Tag中clientPostBack
  l 设置为false,刷新地图,并且刷新页面;
  l 设置为true,只刷新地图,不刷新页面;

 

分享到:
评论

相关推荐

    ArcGIS+Server+Java讲座

    4、ArcGIS Server 开发初步 -- 自定义工具 7 5、使用图片和TrueType字体进行标注 10 6、Server Java讲座-----扩展Tasks框架 13 7、Server Java 开发实战---自定义command 19 8、 ArcGIS Server Java 讲座--ADF 体系...

    ArcGIS_Server应用文档

    首先,我们来看《ArcGIS Server开发初步--自定义工具(原创).doc》。这个文档可能涵盖了创建自定义工具的过程,这在GIS应用开发中是非常重要的一环。自定义工具允许开发者根据特定需求定制工作流程,提高效率。文档...

    arcgis server 9.3初步

    【ArcGIS Server 9.3 初步】是关于Esri公司的地理信息系统服务器软件ArcGIS Server的入门介绍,特别是针对9.3版本基于Java的版本。ArcGIS Server允许用户通过网络发布、管理和共享地理信息,支持多种Web应用程序和...

    Arcgis Server For Developers

    - **给予开发者对ArcGIS Server开发的整体概述**:文档的主要目的是让开发者对如何使用ArcGIS Server进行开发有一个初步的认识。这不仅包括技术层面的理解,还涵盖了应用场景和实际案例。 - **提供通往其他会议/...

    ArcGIS Server 9.2帮助文档翻译(4) Adding a Command or Tool

    在ArcGIS Server 9.2环境中,添加自定义命令或工具是一项重要的扩展功能,它允许开发者根据特定需求创建并集成新的功能模块到现有的GIS服务器应用程序中。本文档旨在为用户提供一个全面的指南,帮助他们了解如何在...

    Ch2.ArcGISEngine开发初步.ppt

    ### ArcGIS Engine 开发初步知识点概述 #### 一、ArcObjects与ArcGIS Engine的关系 - **ArcObjects**:作为ESRI公司ArcGIS系列产品基础的一部分,ArcObjects(简称AO)是基于Microsoft COM技术构建的GIS组件集合。...

    装ArcGIS+Server9.3详细步骤和部署(有图文说明)

    - **环境选择**:由于ArcGIS Server 9.3基于.NET框架开发,因此需选择“.NET Framework”环境进行安装。 - **组件选择**:若不确定所需组件,建议全部勾选以安装所有可用组件。 - **安装过程**:按照向导提示,...

    初步了解ArcGis

    ArcGIS Server 包括 SOM(ArcGISServer Object Manager)和 SOC(ArcGIS Server Object Container)两个主要组件。SOM 管理服务器对象,而 SOC 提供了容器环境来运行这些对象。ArcGIS Server 可以在不同的部署架构下...

    ArcGIS for Android 100.4.0示例完整源码

    - 地图服务交互:如何与 ArcGIS Server 或 ArcGIS Online 进行通信,获取地图服务和图层数据。 - 用户交互:添加自定义控件,如工具条、下拉菜单,以便用户选择绘制工具和设置。 6. **开发实践**: - 使用 ...

    ArcGis二次开发MO教程

    ArcGIS的二次开发能力使得用户可以根据自身需求定制独特的工作流程和工具,极大地拓展了GIS的应用范围。本教程以“ArcGIS二次开发MO”为主题,将详细介绍如何利用MapObjects库进行开发,帮助初学者快速入门并提升...

    Arcgis mobile SDK 移动开发文档

    ArcGIS Mobile SDK(移动软件开发工具包)是Esri公司提供的一个强大工具,用于构建地理位置感知的应用程序。它为开发者提供了在移动设备上集成GIS(地理信息系统)功能的能力,使用户能够在手机或平板电脑上进行地图...

    16地信二次开发yangxia

    4. **ArcGIS Desktop Add-ins**:开发者可以创建自定义的ArcMap(ArcGIS Desktop的主要组件之一)插件,扩展其功能,如自定义工具条、按钮、对话框等。 5. **ArcGIS Server**:对于需要在网络上提供GIS服务的应用,...

    ArcGIS Diagrammer 10

    ArcGIS Diagrammer 10 是一款由Esri公司开发的专业地理信息系统(GIS)组件,主要用于创建、编辑和管理地理空间数据的可视化表示,即地图图解。它是一个强大的工具,允许用户以图形方式表示复杂的地理信息,便于理解...

    Arcgis For Android配置教程

    然而,这只是GIS开发的冰山一角,更深入的功能如服务端数据交互、离线地图支持、自定义图层和符号系统等都需要进一步学习和实践。不断探索和理解ArcGIS for Android的API,才能充分利用其强大的功能,开发出满足各种...

    ArcGIS API for JavaScript v3.5下载(api + sdk开发包)

    综上所述,ArcGIS API for JavaScript v3.5是一个功能丰富的Web地图开发工具,适用于各种地理信息系统项目,无论是简单的地图展示还是复杂的地理分析应用,都能得到很好的支持。通过arcgis_js_v35_sdk.zip和arcgis_...

    AO开发入门培训的pdf内容2

    最后,"定制ArcMap按钮"可能是指如何利用ArcGIS SDK中的AO接口,创建自定义工具栏和按钮,实现特定的GIS操作。这可能包括添加新工具,或者将VBA宏绑定到按钮上,使得用户通过点击按钮就能执行特定的操作。 这些内容...

    初级学习ArcGIS Engine视频课程

    ArcGIS Engine是Esri公司提供的一款用于创建桌面和移动应用程序的开发工具,它允许开发者集成地图和地理处理功能到自定义的应用程序中,广泛应用于土地规划、环境分析、交通管理等多个领域。 本课程旨在帮助学员...

    arcview实习指导(8-14)

    通过实习,将学习如何将地图数据转换为其他格式,如KML、PDF,以及如何通过ArcGIS Server发布Web服务,实现数据的在线访问和分享。 十、案例分析 实习的最后阶段,将结合实际案例,运用所学知识进行综合分析,提升...

Global site tag (gtag.js) - Google Analytics