向图层中添加线段

 

向图层中添加线段和向图层中添加点是一样的,其本质都是向图层中添加一个图元,只是属于不同类型的图元。并且点和线段是可以在一个图存上共存的。代码示例如下:

 

    /// <summary>
    /// 向图层中添加线段
    /// Design by Glacier
    /// 2008年8月6日
    /// <param name="tempLayerTableName">表名</param>
    /// <param name="tempLayerName">图层名</param>
    /// <param name="startPoint">线段起点坐标</param>
    /// <param name="endPoint">线段终点坐标</param>
    /// </summary>
    public static void AddPointToLayer(string tempLayerTableName, string tempLayerName, DPoint startPoint, DPoint endPoint)
    {
        MapInfo.Mapping.Map myMap = MapInfo.Engine.Session.Current.MapFactory[MapControl1.MapAlias];

        //获取图层和表
        FeatureLayer workLayer = (MapInfo.Mapping.FeatureLayer)myMap.Layers[tempLayerName];
        MapInfo.Data.Table tblTemp = MapInfo.Engine.Session.Current.Catalog.GetTable(tempLayerTableName);

        //创建线图元及其样式
        FeatureGeometry pgLine = MultiCurve.CreateLine(workLayer.CoordSys, startPoint, endPoint);
        MapInfo.Styles.SimpleLineStyle slsLine = new MapInfo.Styles.SimpleLineStyle(new LineWidth(3, LineWidthUnit.Pixel), 2, System.Drawing.Color.OrangeRed);
        MapInfo.Styles.CompositeStyle csLine = new MapInfo.Styles.CompositeStyle(slsLine);
        MapInfo.Data.Feature ptLine = new MapInfo.Data.Feature(tblTemp.TableInfo.Columns);
        ptPoint.Geometry = pgLine;
        ptPoint.Style = csLine;
       
        //将线图元加入图层
        workLayer.Table.InsertFeature(ptLine);
    }

<think>好的,我现在需要在ArcGIS Pro中基于现有的SHP文件创建新的SHP文件并添加线段要素。首先,我需要明确步骤。根据引用[3]提到的,创建新要素通常涉及数据编辑和捕捉功能。我应该先创建一个新的线要素类,然后开始编辑,绘制线段。 接下来,参考引用[1]中的方法,测量数据生成线SHP需要坐标表格。可能需要将现有SHP的坐标提取出来,或者直接在新文件中绘制。同时,引用[4]提到转换时可能出现小网格问题,需要注意拓扑错误。 具体操作可能包括:在目录窗格中右键新建SHP文件,设置线类型。然后使用编辑工具添加线段,确保捕捉功能开启以准确连接点。最后保存编辑并验证数据是否正确。需要检查是否有多余的节点或断裂,避免出现引用[4]中的问题。</think>### 逐步说明:在 ArcGIS Pro 中基于现有 SHP 文件创建新 SHP 并添加线段要素 #### 步骤 1:创建新的线要素类(SHP 文件) 1. 打开 **目录窗格**(默认位于右侧),右键点击目标文件夹,选择 **新建** → **Shapefile**。 2. 在对话框中设置: - **名称**:输入新文件名(如 `NewLine.shp`)。 - **要素类型**:选择 **线**。 - **坐标系**:建议与现有 SHP 文件一致(可通过 **导入** 选择原文件的坐标系)[^3]。 #### 步骤 2:将新 SHP 添加到地图并启动编辑 1. 将新建的 `NewLine.shp` 拖入地图视图。 2. 点击 **编辑** 选项卡,选择 **开始编辑**,确认目标图层为 `NewLine.shp`。 #### 步骤 3:绘制线段要素 1. 在 **编辑** 选项卡中,点击 **创建** 按钮,选择 **线** 工具。 2. 在地图窗口中: - 单击起点,连续单击添加折点,双击结束线段。 - 使用 **捕捉功能**(如引用[3]所述)确保线段与现有要素对齐(如端点重合)。 #### 步骤 4:保存并验证数据 1. 点击 **保存编辑**,然后选择 **停止编辑**。 2. 右键点击 `NewLine.shp` 选择 **属性表**,确认线段属性已生成。 3. 若出现类似引用[4]的冗余网格问题,可使用 **拓扑检查工具** 或 **简化线工具**(地理处理工具箱中搜索)清理多余节点。 ```python # 示例:通过 ArcPy 创建线要素(需在 ArcGIS Pro 的 Python 窗口运行) import arcpy # 创建线 SHP 文件 arcpy.CreateFeatureclass_management( out_path="C:/YourFolder", out_name="NewLine.shp", geometry_type="POLYLINE", spatial_reference=arcpy.SpatialReference(4326) # WGS84 坐标系 ) # 添加线段(需配合编辑会话) with arcpy.da.InsertCursor("NewLine.shp", ["SHAPE@"]) as cursor: array = arcpy.Array([ arcpy.Point(116.0, 39.9), arcpy.Point(116.5, 40.0), arcpy.Point(117.0, 39.8) ]) polyline = arcpy.Polyline(array) cursor.insertRow([polyline]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值