基于ArcGIS Server对ShapeFile文件的编辑功能实
系统
2017 0
-
public
class
PointEdit {
-
private
WebContext webContext;
-
public
void
AddPoint (MapEvent event){
-
try
{
-
-
WebMap webmap=webContext.getWebMap();
-
WebPoint webpoint=(WebPoint) event.getWebGeometry().toMapGeometry(webmap);
-
AGSLocalMapResource mapResource = (AGSLocalMapResource) MapResourceClass.getMapResource(webContext,
1
);
-
IServerContext context = mapResource.getServerContext();
-
MapServer mapServer = mapResource.getLocalMapServer();
-
-
-
-
IMap maps= mapServer.getMap(
""
);
-
ILayer layer=maps.getLayer(
0
);
-
IFeatureLayer fLayer = (IFeatureLayer) layer;
-
IFeatureClass fc = fLayer.getFeatureClass();
-
IDataset ds1=
new
IDatasetProxy(fc);
-
IWorkspace pWorkSpace = ds1.getWorkspace();
-
IWorkspaceEdit pWorkspaceEdit=
new
IWorkspaceEditProxy(pWorkSpace);
-
-
pWorkspaceEdit.startEditing(
true
);
-
pWorkspaceEdit.startEditOperation();
-
-
IFeature pFeature=fc.createFeature();
-
-
Point p=(Point)context.createObject(
"esriGeometry.Point"
);
-
IPoint pt=(IPoint)context.createObject(
"esriGeometry.Point"
);
-
pt.setX(webpoint.getX());
-
pt.setY(webpoint.getY());
-
pt.setM(
0
);
-
pt.setZ(
0
);
-
p=(Point)pt;
-
-
pFeature.setShapeByRef(p);
-
-
pFeature.setValue(fc.findField(
"code"
),
1
);
-
-
pFeature.store();
-
-
pWorkspaceEdit.stopEditOperation();
-
pWorkspaceEdit.stopEditing(
true
);
-
-
-
mapServer.refreshServerObjects();
-
webContext.refresh();
-
-
}
catch
(Exception gise) {
-
System.out.print(
"添加点"
+ gise.toString() +
"\n"
);
-
gise.printStackTrace();
-
}
-
}
-
}
-
这是添加点的代码
-
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.ArcGISServer;
-
using ESRI.ArcGIS.Server;
-
using ESRI.ArcGIS.Carto;
-
using ESRI.ArcGIS.Geometry;
-
using ESRI.ArcGIS.esriSystem;
-
using ESRI.ArcGIS.Display;
-
using System.Collections;
-
using ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer;
-
using ESRI.ArcGIS.Geodatabase;
-
-
-
-
public
class
AddPointFeature : IMapServerToolAction
-
{
-
public
AddPointFeature()
-
{
-
-
-
-
}
-
#region IMapServerToolAction 成员
-
void
IMapServerToolAction.ServerAction(ToolEventArgs args)
-
{
-
-
ESRI.ArcGIS.ADF.Web.UI.WebControls.Map mapCtrl;
-
mapCtrl = (ESRI.ArcGIS.ADF.Web.UI.WebControls.Map)args.Control;
-
PointEventArgs pea = (PointEventArgs)args;
-
System.Drawing.Point screen_point = pea.ScreenPoint;
-
MapFunctionality mapFunc = (MapFunctionality)mapCtrl.GetFunctionality(
0
);
-
MapResourceLocal mapResLocal = mapFunc.Resource as MapResourceLocal;
-
IServerContext pSOC;
-
IMapServer pMapServer;
-
IMap pMap;
-
-
pSOC = mapResLocal.ServerContextInfo.ServerContext;
-
pMapServer = pSOC.ServerObject as IMapServer;
-
IMapServerObjects pMapServerObjs = pMapServer as IMapServerObjects;
-
pMap = pMapServerObjs.get_Map(pMapServer.DefaultMapName);
-
ESRI.ArcGIS.ADF.ArcGISServer.MapDescription mapDesp = mapFunc.MapDescription;
-
ESRI.ArcGIS.ADF.Web.Geometry.Point adf_map_point = ESRI.ArcGIS.ADF.Web.Geometry.Point.ToMapPoint(screen_point, mapCtrl.Extent, mapFunc.DisplaySettings.ImageDescriptor.Width, mapFunc.DisplaySettings.ImageDescriptor.Height);
-
PointN ags_map_point = ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.FromAdfPoint(adf_map_point);
-
-
-
-
ILayer pLayer = pMap.get_Layer(
0
);
-
IFeatureLayer pFeatureLyr = pLayer as IFeatureLayer;
-
IFeatureClass pFeatCls = pFeatureLyr.FeatureClass;
-
IDataset pDataset = pFeatCls as IDataset;
-
IWorkspace pWS = pDataset.Workspace;
-
IWorkspaceEdit pWorkspaceEdit = pWS as IWorkspaceEdit;
-
pWorkspaceEdit.StartEditing(
false
);
-
pWorkspaceEdit.StartEditOperation();
-
IFeatureBuffer pFeatureBuffer;
-
IFeatureCursor pFeatureCuror;
-
IFeature pFeature;
-
IPoint pPoint;
-
pFeatureBuffer = pFeatCls.CreateFeatureBuffer();
-
pFeatureCuror = pFeatCls.Insert(
true
);
-
pFeature = pFeatureBuffer as IFeature;
-
pPoint =(IPoint) pSOC.CreateObject(
"esriGeometry.Point"
);
-
pPoint.X = ags_map_point.X;
-
pPoint.Y = ags_map_point.Y;
-
IGeometry pPointGeo = pPoint as IGeometry;
-
pFeature.Shape = pPointGeo;
-
pFeatureCuror.InsertFeature(pFeatureBuffer);
-
-
pWorkspaceEdit.StopEditOperation();
-
pWorkspaceEdit.StopEditing(
true
);
-
mapCtrl.Refresh();
-
}
-
#endregion
-
}
-
-
添加线的代码
-
-
-
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.ArcGISServer;
-
using ESRI.ArcGIS.Server;
-
using ESRI.ArcGIS.Carto;
-
using ESRI.ArcGIS.Geometry;
-
using ESRI.ArcGIS.esriSystem;
-
using ESRI.ArcGIS.Display;
-
using System.Collections;
-
using ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer;
-
using ESRI.ArcGIS.Geodatabase;
-
-
-
-
public
class
AddPolylineFeature : IMapServerToolAction
-
{
-
public
AddPolylineFeature()
-
{
-
-
-
-
}
-
#region IMapServerToolAction 成员
-
public
void
ServerAction(ToolEventArgs args)
-
{
-
-
-
ESRI.ArcGIS.ADF.Web.UI.WebControls.Map mapCtrl;
-
mapCtrl = (ESRI.ArcGIS.ADF.Web.UI.WebControls.Map)args.Control;
-
PolylineEventArgs peal = (PolylineEventArgs)args;
-
System.Drawing.Point[] screen_points = peal.Vectors;
-
MapFunctionality mapFunc = (MapFunctionality)mapCtrl.GetFunctionality(
0
);
-
MapResourceLocal mapResLocal = mapFunc.Resource as MapResourceLocal;
-
ESRI.ArcGIS.ADF.ArcGISServer.MapDescription mapDesc;
-
mapDesc = mapFunc.MapDescription;
-
IServerContext pSOC;
-
IMapServer pMapServer;
-
IMap pMap;
-
pSOC = mapResLocal.ServerContextInfo.ServerContext;
-
pMapServer = pSOC.ServerObject as IMapServer;
-
IMapServerObjects pMapServerObjs = pMapServer as IMapServerObjects;
-
pMap = pMapServerObjs.get_Map(pMapServer.DefaultMapName);
-
-
IPointCollection pPointColl;
-
pPointColl = (IPointCollection)pSOC.CreateObject(
"esriGeometry.Polyline"
);
-
for
(
int
i =
0
; i < screen_points.Length; i++)
-
{
-
IPoint pPoint;
-
ESRI.ArcGIS.ADF.Web.Geometry.Point mappnt = ESRI.ArcGIS.ADF.Web.Geometry.Point.ToMapPoint(screen_points, mapCtrl.Extent, (
int
)mapCtrl.Width.Value, (
int
)mapCtrl.Height.Value);
-
pPoint = (IPoint)pSOC.CreateObject(
"esriGeometry.Point"
);
-
pPoint.X = mappnt.X;
-
pPoint.Y = mappnt.Y;
-
object missingVal = System.Reflection.Missing.Value;
-
pPointColl.AddPoint(pPoint, ref missingVal, ref missingVal);
-
}
-
IGeometry pPolylineGeo = pPointColl as IGeometry;
-
-
-
-
ILayer pLayer = pMap.get_Layer(
1
);
-
IFeatureLayer pFeatureLyr = pLayer as IFeatureLayer;
-
IFeatureClass pFeatCls = pFeatureLyr.FeatureClass;
-
IDataset pDataset = pFeatCls as IDataset;
-
IWorkspace pWS = pDataset.Workspace;
-
IWorkspaceEdit pWorkspaceEdit = pWS as IWorkspaceEdit;
-
pWorkspaceEdit.StartEditing(
false
);
-
pWorkspaceEdit.StartEditOperation();
-
IFeatureBuffer pFeatureBuffer;
-
IFeatureCursor pFeatureCuror;
-
IFeature pFeature;
-
pFeatureBuffer = pFeatCls.CreateFeatureBuffer();
-
pFeatureCuror = pFeatCls.Insert(
true
);
-
pFeature = pFeatureBuffer as IFeature;
-
pFeature.Shape = pPolylineGeo;
-
pFeatureCuror.InsertFeature(pFeatureBuffer);
-
pWorkspaceEdit.StopEditOperation();
-
pWorkspaceEdit.StopEditing(
true
);
-
mapCtrl.Refresh();
-
}
-
#endregion
-
}
-
编辑面的代码
-
-
-
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.ArcGISServer;
-
using ESRI.ArcGIS.Server;
-
using ESRI.ArcGIS.Carto;
-
using ESRI.ArcGIS.Geometry;
-
using ESRI.ArcGIS.esriSystem;
-
using ESRI.ArcGIS.Display;
-
using System.Collections;
-
using ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer;
-
using ESRI.ArcGIS.Geodatabase;
-
-
-
-
public
class
AddPolygonFeature : IMapServerToolAction
-
{
-
public
AddPolygonFeature()
-
{
-
-
-
-
}
-
#region IMapServerToolAction 成员
-
public
void
ServerAction(ToolEventArgs args)
-
{
-
-
-
ESRI.ArcGIS.ADF.Web.UI.WebControls.Map mapCtrl;
-
mapCtrl = (ESRI.ArcGIS.ADF.Web.UI.WebControls.Map)args.Control;
-
PolygonEventArgs peag = (PolygonEventArgs)args;
-
System.Drawing.Point[] screen_points = peag.Vectors;
-
MapFunctionality mapFunc = (MapFunctionality)mapCtrl.GetFunctionality(
0
);
-
MapResourceLocal mapResLocal = mapFunc.Resource as MapResourceLocal;
-
ESRI.ArcGIS.ADF.ArcGISServer.MapDescription mapDesc;
-
mapDesc = mapFunc.MapDescription;
-
IServerContext pSOC;
-
IMapServer pMapServer;
-
IMap pMap;
-
pSOC = mapResLocal.ServerContextInfo.ServerContext;
-
pMapServer = pSOC.ServerObject as IMapServer;
-
IMapServerObjects pMapServerObjs = pMapServer as IMapServerObjects;
-
pMap = pMapServerObjs.get_Map(pMapServer.DefaultMapName);
-
-
-
IPointCollection pPointColl;
-
pPointColl = (IPointCollection)pSOC.CreateObject(
"esriGeometry.Polygon"
);
-
for
(
int
i =
0
; i < screen_points.Length; i++)
-
{
-
IPoint pPoint;
-
ESRI.ArcGIS.ADF.Web.Geometry.Point mappnt = ESRI.ArcGIS.ADF.Web.Geometry.Point.ToMapPoint(screen_points, mapCtrl.Extent, (
int
)mapCtrl.Width.Value, (
int
)mapCtrl.Height.Value);
-
pPoint = (IPoint)pSOC.CreateObject(
"esriGeometry.Point"
);
-
pPoint.X = mappnt.X;
-
pPoint.Y = mappnt.Y;
-
object missingVal = System.Reflection.Missing.Value;
-
pPointColl.AddPoint(pPoint, ref missingVal, ref missingVal);
-
}
-
IGeometry pPolylineGeo = pPointColl as IGeometry;
-
-
-
-
ILayer pLayer = pMap.get_Layer(
2
);
-
IFeatureLayer pFeatureLyr = pLayer as IFeatureLayer;
-
IFeatureClass pFeatCls = pFeatureLyr.FeatureClass;
-
IDataset pDataset = pFeatCls as IDataset;
-
IWorkspace pWS = pDataset.Workspace;
-
IWorkspaceEdit pWorkspaceEdit = pWS as IWorkspaceEdit;
-
pWorkspaceEdit.StartEditing(
false
);
-
pWorkspaceEdit.StartEditOperation();
-
IFeatureBuffer pFeatureBuffer;
-
IFeatureCursor pFeatureCuror;
-
IFeature pFeature;
-
pFeatureBuffer = pFeatCls.CreateFeatureBuffer();
-
pFeatureCuror = pFeatCls.Insert(
true
);
-
pFeature = pFeatureBuffer as IFeature;
-
pFeature.Shape = pPolylineGeo;
-
pFeatureCuror.InsertFeature(pFeatureBuffer);
-
pWorkspaceEdit.StopEditOperation();
-
pWorkspaceEdit.StopEditing(
true
);
-
mapCtrl.Refresh();
-
}
-
#endregion
-
}
基于ArcGIS Server对ShapeFile文件的编辑功能实现
更多文章、技术交流、商务合作、联系博主
微信扫码或搜索:z360901061
微信扫一扫加我为好友
QQ号联系: 360901061
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。
【本文对您有帮助就好】元