youlitai
路人甲
路人甲
  • 注册日期2008-01-25
  • 发帖数9
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1305回复:1

帮忙看看 向shp中 添加元素的问题

楼主#
更多 发布于:2008-10-12 15:55
<DIV>今天我发现我创建的shape  只能往里 添加 polygon .我就不明白貌似我的代码中也没设置 .莫非是默认的情况?  那我怎么改 才能往里添加  polyline 呢?   Dim pFeatureWorkspace As IFeatureWorkspace<BR>        Dim pWorkspaceFactory As IWorkspaceFactory<BR>        Dim pFields As IFields<BR>        Dim pFieldsEdit As IFieldsEdit<BR>        Dim pField As IField<BR>        Dim pFieldEdit As IFieldEdit<BR>        Dim pGeometryDef As IGeometryDef<BR>        Dim pGeometryDefEdit As IGeometryDefEdit<BR>        Dim pFeatClass As IFeatureClass<BR>        Dim sShapeFieldName As String<BR>        Dim sNewShapeFileName As String<BR><BR><BR>        ' On Error GoTo ErrorHandler<BR>        sNewShapeFileName = Dir(sFilePath ; sFileName ; ".shp")  '<BR>        If (sNewShapeFileName <> "") Then<BR>            MsgBox("文件已经存在")<BR>            Exit Sub<BR>        End If<BR><BR>        sShapeFieldName = "Shape"<BR><BR>        'Open the folder to contain the shapefile as a workspace<BR>        pWorkspaceFactory = New ShapefileWorkspaceFactory()<BR>        pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(sFilePath, 0)<BR><BR>        'Set up a simple fields collection<BR>        pFields = New FieldsClass()<BR>        pFieldsEdit = pFields<BR>        'Make the shape field<BR>        'it will need a geometry definition, with a spatial reference<BR>        pField = New FieldClass()<BR><BR>        pFieldEdit = pField<BR>        pFieldEdit.Name_2 = sShapeFieldName<BR>        pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry<BR><BR>        pGeometryDef = New GeometryDef()<BR>        pGeometryDefEdit = pGeometryDef<BR>        With pGeometryDefEdit<BR>            .GeometryType_2 = 4<BR>            .SpatialReference_2 = New UnknownCoordinateSystem()<BR>        End With<BR>        pFieldEdit.GeometryDef_2 = pGeometryDef<BR>        pFieldsEdit.AddField(pField)<BR>     options and can be defaulted as Nothing)<BR>        Try<BR>            pFeatClass = pFeatureWorkspace.CreateFeatureClass _<BR>          (sFileName, pFields, Nothing, Nothing, 1, sShapeFieldName, "")<BR>        Catch ex As Exception<BR>            MessageBox.Show(ex.Message)<BR>        End Try<BR><BR>         pFeatClass.CreateFeature()       ‘  这里我创建一个空的元素,然后再用 属性表中看到 shape 字段值为       polygon<BR><BR>                 pFeat.Store()<BR>        Exit Sub</DIV>
喜欢0 评分0
wheroy
路人甲
路人甲
  • 注册日期2004-09-04
  • 发帖数159
  • QQ
  • 铜币251枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-10-12 16:56
<P>  .GeometryType_2 = 4 是polygon </P>
<P>   =3 就是polyline</P><PRE><STRONG>esriGeometryNull          </STRONG>= 0<BR><STRONG>esriGeometryPoint         </STRONG>= 1<BR><STRONG>esriGeometryMultipoint    </STRONG>= 2<BR><STRONG>esriGeometryPolyline      </STRONG>= 3<BR><STRONG>esriGeometryPolygon       </STRONG>= 4<BR><STRONG>esriGeometryEnvelope      </STRONG>= 5<BR><STRONG>esriGeometryPath          </STRONG>= 6<BR><STRONG>esriGeometryAny           </STRONG>= 7<BR><STRONG>esriGeometryMultiPatch    </STRONG>= 9<BR><STRONG>esriGeometryRing          </STRONG>= 11<BR><STRONG>esriGeometryLine          </STRONG>= 13<BR><STRONG>esriGeometryCircularArc   </STRONG>= 14<BR><STRONG>esriGeometryBezier3Curve  </STRONG>= 15<BR><STRONG>esriGeometryEllipticArc   </STRONG>= 16<BR><STRONG>esriGeometryBag           </STRONG>= 17<BR><STRONG>esriGeometryTriangleStrip </STRONG>= 18<BR><STRONG>esriGeometryTriangleFan   </STRONG>= 19<BR><STRONG>esriGeometryRay           </STRONG>= 20<BR><STRONG>esriGeometrySphere        </STRONG>= 21</PRE>
<P><BR> </P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部