- 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?firstLayer?=?maps.getLayer(Otid); ??
- ???????????????????????? //得到圖層的空間編輯對象 ??
- ????????????????????????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(); ??
- ???????????????????????? //創(chuàng)建新的地圖對象 ??
- ????????????????????????IFeature?pFeature=fc.createFeature(); ??
- ???????????????????????? //將web地圖對象轉(zhuǎn)成地圖對象 ??
- ????????????????????????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; ??
- ///?<summary> ??
- ///?AddPointFeature?的摘要說明 ??
- ///?</summary> ??
- public ? class ?AddPointFeature?:?IMapServerToolAction ??
- { ??
- public ?AddPointFeature() ??
- { ??
- ?? // ??
- ?? //?TODO:?在此處添加構(gòu)造函數(shù)邏輯 ??
- ?? // ??
- } ??
- ????#region?IMapServerToolAction?成員 ??
- ???? void ?IMapServerToolAction.ServerAction(ToolEventArgs?args) ??
- ????{ ??
- ???????? //Step1:?取到地圖點擊畫的那個點 ??
- ????????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); ??
- ??
- ???????? //Step2:插入點到Shp文件中去。要打開WS ??
- ???????? //第一個圖層是點,第二個圖層是線,第三個圖層是面。這里就不判斷,主要在于功能的實現(xiàn) ??
- ????????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; ??
- ///?<summary> ??
- ///?AddPolylineFeature?的摘要說明 ??
- ///?</summary> ??
- public ? class ?AddPolylineFeature?:?IMapServerToolAction ??
- { ??
- public ?AddPolylineFeature() ??
- { ??
- ?? // ??
- ?? //?TODO:?在此處添加構(gòu)造函數(shù)邏輯 ??
- ?? // ??
- } ??
- ????#region?IMapServerToolAction?成員 ??
- ???? public ? void ?ServerAction(ToolEventArgs?args) ??
- ????{ ??
- ???????? //Step1:根據(jù)客戶端定義的動作,將屏幕坐標點轉(zhuǎn)換成地圖坐標點 ??
- ???????? //并初始化一些常用的參數(shù) ??
- ????????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; ??
- ??
- ???????? //Step2:插入點到Shp文件中去。要打開WS ??
- ???????? //第一個圖層是點(0),第二個圖層是線(1),第三個圖層是面(2)。這里就不判斷,主要在于功能的實現(xiàn) ??
- ????????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; ??
- ///?<summary> ??
- ///?AddPolygonFeature?的摘要說明 ??
- ///?</summary> ??
- public ? class ?AddPolygonFeature?:?IMapServerToolAction ??
- { ??
- public ?AddPolygonFeature() ??
- { ??
- ?? // ??
- ?? //?TODO:?在此處添加構(gòu)造函數(shù)邏輯 ??
- ?? // ??
- } ??
- ????#region?IMapServerToolAction?成員 ??
- ???? public ? void ?ServerAction(ToolEventArgs?args) ??
- ????{ ??
- ???????? //Step1:根據(jù)客戶端定義的動作,將屏幕坐標點轉(zhuǎn)換成地圖坐標點 ??
- ???????? //并初始化一些常用的參數(shù) ??
- ????????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; ??
- ??
- ???????? //Step2:插入點到Shp文件中去。要打開WS ??
- ???????? //第一個圖層是點(0),第二個圖層是線(1),第三個圖層是面(2)。這里就不判斷,主要在于功能的實現(xiàn) ??
- ????????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 ??
-
}?
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
