arcgis 添加要素类代码

ContractedBlock.gif ExpandedBlockStart.gif Code
Sub addPoint()
    
Dim pMxDoc As IMxDocument
    
    
Dim pMap As IMap
    
Dim pFeatureLayer As IFeatureLayer
    
Dim pFeatureClass As IFeatureClass
    
Dim p As IPoint
    
Dim pFeature As IFeature
    
Set pMxDoc = ThisDocument
    
Set pMap = pMxDoc.FocusMap
    
Set pFeatureLayer = pMap.Layer(0)
    
    
Set pFeatureClass = pFeatureLayer.FeatureClass
    
Set pFeature = pFeatureClass.CreateFeature
    
'添加点的坐标
    Set p = New point
    p.X 
= 76374.006
    p.Y 
= -3660.849
    
Set pFeature.Shape = p
    pFeature.Value(
2= "111"
    pFeature.Value(
3= "测试添加"
    pFeature.Store
    
    

End Sub

今天开发arcgis server的时候使用代码动态添加要素,发现出错,结果想用vba试试。结果VBA一试就成功了。

java 添加代码。

ContractedBlock.gif ExpandedBlockStart.gif Code
int minx = Integer.parseInt(paramMap.get("Map0_minx").toString());
                
int miny = Integer.parseInt(paramMap.get("Map0_miny").toString());

                
                WebPoint tmpExtent 
= new WebPoint();
                tmpExtent.setX(minx);
                tmpExtent.setY(miny);
                tmpExtent 
= (WebPoint) tmpExtent.toMapGeometry(wm);
                
                
                AGSLocalMapResource mapResource 
= (AGSLocalMapResource) context
                .getResources().get(
"ags0");
                
        
                IFeatureLayer featurelayer 
= getFeatureLayer(mapResource);
                IServerContext serverContext 
= mapResource.getServerContext();
                IPoint webPoint 
= (IPoint) serverContext.createObject(Point.getClsid());
                webPoint.setX(tmpExtent.getX());
                webPoint.setY(tmpExtent.getY());
                
if (featurelayer != null) {
                    
                    IFeatureClass featureCls
=featurelayer.getFeatureClass();
                    System.out.println(
"aliasName:" +featureCls.getAliasName());
                    
                    

                    IDataset ds
=new IDatasetProxy(featureCls);
                    IWorkspace ws
=new IWorkspaceProxy(ds.getWorkspace());
                    
                    IWorkspaceEdit wse
=new IWorkspaceEditProxy(ws);
                    
//IWorkspaceEdit wse=(IWorkspaceEdit)ws;
                    
//wse.startEditing(false);
                    wse.startEditOperation();
                    
                    
                    IFeature feature 
=featureCls.createFeature();
                    feature.setShapeByRef((IGeometry) webPoint);
                    feature.setValue(
2"123456");
                    feature.setValue(
3"测试添加");
                    feature.store();
                    wse.stopEditOperation();
                    
//wse.stopEditing(true);
                }
                
                context.refresh();

 

 

java 下出错于下:

AutomationException: 0x80004005 - Unspecified error
 at com.esri.arcgis.interop.Dispatch.vtblInvoke(Unknown Source)
 at com.esri.arcgis.geodatabase.IFeatureClassProxy.createFeature(Unknown Source)

最后发现没有问题,后面我打了arcgis server sp 6. 问题解决了。原来是补丁的问题。

 

 

 

转载于:https://www.cnblogs.com/yg_zhang/archive/2008/09/08/1287000.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值