• arcgis创建点图形和线图形


    向oracle数据库新增点图形数据:

     1  1 public static int CreatePoint(string featureClassName, SCoordinates sCoord, string[] sde=null)
    2 2 {
    3 3
    4 4 if (pFeatureWorkspace == null)
    5 5 ConnectSDE(sde);
    6 6 OpenFeatureSet(sde);
    7 7 IFeatureClass pFeatureClass;
    8 8 IFeature pFeature = null;
    9 9 IGeometry pGeo = null;
    10 10 IPoint pPoint = null;
    11 11 int fidIndex;
    12 12 int objectID = -1;
    13 13 featureClassName = "PMGIS" + "." + featureClassName;
    14 14 try
    15 15 {
    16 16 if (pFeatureClassdic.Keys.Contains(featureClassName))
    17 17 {
    18 18 pFeatureClass = pFeatureClassdic[featureClassName];
    19 19 m_WorkspaceEdit.StartEditing(false);
    20 20 m_WorkspaceEdit.StartEditOperation();
    21 21 pFeature = pFeatureClass.CreateFeature();
    22 22 //一般Shape图形表都会有2个图形字段 OBJECTID和Shape
    23 23 fidIndex = pFeature.Fields.FindField("OBJECTID");
    24 24 objectID = (int)pFeature.get_Value(fidIndex);
    25 25 pPoint = new Point();
    26 26 pPoint.X = sCoord.X;
    27 27 pPoint.Y = sCoord.Y;
    28 28 pPoint.Z = sCoord.Z;
    29 29 //pPoint = GetProject(sCoord.X, sCoord.Y);
    30 30 pGeo = pPoint as IGeometry;
    31 31 IZAware pZAware = (IZAware)pGeo;//创建要素类时,必须选择“Coordinates include z values”
    32 32 pZAware.ZAware = true;
    33 33 pFeature.Shape = pGeo;//,否则,则会出错
    34 34 pFeature.Store(); //保存
    35 35 m_WorkspaceEdit.StopEditOperation(); //停止编辑操作
    36 36 m_WorkspaceEdit.StopEditing(true); //停止编辑 顺序不能颠倒
    37 37 }
    38 38 }
    39 39 catch (Exception ex)
    40 40 {
    41 41
    42 42 }
    43 43 return objectID;
    44 44 }

    向oracle数据库新增线图形数据:

     1         public static int CreateLine(string featureClassName, List<SCoordinates> sCoordLst, string[] sde = null)
    2 {
    3
    4 int objectID = -1;
    5 if (sCoordLst.Count == 0)
    6 return objectID;
    7
    8 if (pWorkspaceFactory == null || pFeatureWorkspace == null)
    9 ConnectSDE(sde);
    10 OpenFeatureSet();
    11 IFeatureClass pFeatureClass;
    12 IFeature pFeature = null;
    13 IPoint pPoint = null;
    14 int fidIndex;
    15 featureClassName = "PMGIS" + "." + featureClassName;
    16 try
    17 {
    18 if (pFeatureClassdic.Keys.Contains(featureClassName))
    19 {
    20 pFeatureClass = pFeatureClassdic[featureClassName];
    21 m_WorkspaceEdit.StartEditing(false);
    22 m_WorkspaceEdit.StartEditOperation();
    23 pFeature = pFeatureClass.CreateFeature();
    24 ESRI.ArcGIS.Geometry.Polyline pPolyline = new ESRI.ArcGIS.Geometry.Polyline();
    25 ((IZAware)(pPolyline as IGeometry)).ZAware = true;
    26 for (int i = 0; i < sCoordLst.Count; i++)
    27 {
    28 pPoint = new Point() { X = sCoordLst[i].X, Y = sCoordLst[i].Y, Z = sCoordLst[i].Z };
    29 pPolyline.AddPoint(pPoint);
    30 }
    31 fidIndex = pFeature.Fields.FindField("OBJECTID");
    32 objectID = (int)pFeature.get_Value(fidIndex);
    33 pFeature.Shape = pPolyline as IGeometry;
    34
    35 pFeature.Store();
    36 m_WorkspaceEdit.StopEditOperation();
    37 m_WorkspaceEdit.StopEditing(true);
    38 }
    39 }
    40 catch (Exception ex)
    41 {
    42
    43 }
    44 return objectID;
    45 }



    寻找突破。。。
  • 相关阅读:
    1010考试T1
    P5631 最小mex生成树 分治 并查集
    P4366 [Code+#4]最短路 建图 最短路
    P1654 OSU! 期望概率DP
    7.26集训
    7.25集训
    7.23集训
    7.22集训
    7.21test
    7.12test
  • 原文地址:https://www.cnblogs.com/iskyoole/p/2190364.html
Copyright © 2020-2023  润新知