ArcGIS Server 9.2利用AE中的对象新增feature
2012-11-09 11:14
47 查看
9.2如果打上sp5(ArcGISServerDotNet92sp5.msp)补丁后,利用控件EditorTask也可以对要素进行编辑;但现在我们要自定义一个新增按钮,类似于ToolBarItem,单击该按钮后就可以在地图上任意位置新增一条新的记录,然后弹出对话框编辑该Feature的其它属性。当然我们得借助于AE中的对象来处理。
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools; using ESRI.ArcGIS.ADF.Web.UI.WebControls; using ESRI.ArcGIS.ADF.Web.Geometry; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.ADF.ArcGISServer.Editor.Tools; using ESRI.ArcGIS.ADF.ArcGISServer.Editor; using ESRI.ArcGIS.Server; using ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer; using ESRI.ArcGIS.Geometry; /// <summary> /// AppendPointTool 的摘要说明 /// </summary> public class AppendPointTool : IMapServerToolAction { public AppendFenceTool() { // // TODO: 在此处添加构造函数逻辑 // } #region IMapServerToolAction 成员 void IMapServerToolAction.ServerAction(ESRI.ArcGIS.ADF.Web.UI.WebControls.ToolEventArgs args) { PointEventArgs pArgs = (PointEventArgs)args; ESRI.ArcGIS.ADF.Web.Geometry.Point hitPoint = CoordinatesSystem.ScreenToMap(pArgs.ScreenPoint.X, pArgs.ScreenPoint.Y); //需要自己修改 MapResourceLocal mr = MapResourceDecorator.Instance.GetResource<MapResourceLocal>("Business"); //需要修改成对应的MapResource IServerContext sc = mr.ServerContextInfo.ServerContext; ESRI.ArcGIS.Carto.IMapServer mapServer = (ESRI.ArcGIS.Carto.IMapServer)sc.ServerObject; IMapServerObjects pMapServerObjs = mapServer as IMapServerObjects; IMap pMap = pMapServerObjs.get_Map(mapServer.DefaultMapName); ILayer editLayer = pMap.get_Layer(0); //得到指定的图层 IFeatureLayer featureLayer = editLayer as FeatureLayer; IFeatureClass featureClass = featureLayer.FeatureClass; IFeature feature = featureClass.CreateFeature(); ESRI.ArcGIS.ADF.Web.Geometry.Point p = new ESRI.ArcGIS.ADF.Web.Geometry.Point(hitPoint.X, hitPoint.Y); p.X = hitPoint.X; p.Y = hitPoint.Y; IPoint comPoint = (IPoint)ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ToIGeometry(p, sc); feature.set_Value(1, "fence"); //修改第1个字段的值 feature.Shape = (IGeometry)comPoint; feature.Store(); sc.ReleaseContext(); //刷新Resource } #endregion }
相关文章推荐
- C#中winform下利用ArcEngine调用ArcGIS Server发布的服务 AE 10
- 转:利用ArcGIS Server REST API实现对Feature的编辑操作 - 开源IT技术网站
- 利用ArcGIS Server REST API实现对Feature的编辑操作
- 利用html5新增geolocation对象加百度地图API获取用户详细地址
- 利用ArcGIS Server REST API实现对Feature的编辑操作
- C#中winform下利用ArcEngine调用ArcGIS Server发布的服务 AE9.3
- java对象的内存布局(二):利用sun.misc.Unsafe获取类字段的偏移地址和读取字段的值
- 面向对象--利用toString做类型判断
- 利用ArcGIS Server发布Geoprocessing服务
- Arcgis Server 9.2安装与配置(原创)
- 如何利用c++编写不能被继承、但可以在类外定义对象的类
- 利用html5的FormData对象和ajax实现异步文件上传
- (一一五)利用NSKeyedArchiver实现任意对象转为二进制
- java8 lambda小试牛刀,利用Stream把list转map,并将两个list的数据对象合并起来
- 利用反射技术将查询结果封装为对象
- 利用Adapter对象将数据填充到DataTable(或DataSet)的例子
- 【初学笔记】利用反射、泛类思想操作对象的属性和方法的一种方案
- 利用IWebBrowser2的IWebBrowser2::get_Document得doc对象
- set利用TreeSet来实现对象的排序
- 利用Digester把XML转换为Java对象