ArcGIS Server 9.2利用AE中的对象新增feature

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
}


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值