hustycy
路人甲
路人甲
  • 注册日期2006-11-27
  • 发帖数9
  • QQ
  • 铜币152枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1268回复:2

[求助]判断新层坐标系是否和已有的相同,代码出错

楼主#
更多 发布于:2007-11-22 21:56
<BR><BR>
<DIV>判断新层坐标系是否和已有的相同,不同则改成已有的<BR>Dim lGeomIndex As Long<BR>Dim sShpName As String<BR>Dim pFields As IFields<BR>Dim pField As IField<BR>Dim pGeometryDef As IGeometryDef<BR>sShpName = pLayer.FeatureClass.ShapeFieldName<BR>Set pFields = pLayer.FeatureClass.Fields<BR>lGeomIndex = pFields.FindField(sShpName)<BR>Set pField = pFields.Field(lGeomIndex)<BR>Set pGeometryDef = pField.GeometryDef<BR><BR>If Form1.MapControl1.Map.LayerCount > 0 Then<BR>      If Not pGeometryDef.SpatialReference = Form1.MapControl1.Map.SpatialReference Then<BR>                   frmWarning.Show vbModal, Form1<BR>                   pGeometryDef.SpatialReference = Form1.MapControl1.Map.SpatialReference<BR><BR><BR>提示“找不到方法或数据成员”,Form1.MapControl1.Map.SpatialReference 这个地方,<BR><BR>请各位帮忙看下错在哪里呢?</DIV>
喜欢0 评分0
hustycy
路人甲
路人甲
  • 注册日期2006-11-27
  • 发帖数9
  • QQ
  • 铜币152枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-11-27 21:31
<P>看不太懂啊,不会c#,但是还是很感谢你<STRONG><FONT face=Verdana color=#61b713>wavvylia</FONT></STRONG></P>
举报 回复(0) 喜欢(0)     评分
wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-11-25 21:54
<P>给你C#的例子琢磨琢磨:</P>
<P>//IGeometryDef Example<BR>    <BR>    //possible usage fieldsEdit.set_Field(1,IGeometryDef_Example(mySpatialRef));<BR>    public IField IGeometryDef_Example(ESRI.ArcGIS.Geometry.ISpatialReference spatialReference)<BR>    {<BR>        //create a new Geometry Definition<BR>        IGeometryDef geometryDef = new GeometryDefClass();<BR>        IGeometryDefEdit geometryDefEdit = (IGeometryDefEdit)geometryDef;<BR>        geometryDefEdit.AvgNumPoints_2 = 5;<BR>        geometryDefEdit.GeometryType_2 = ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline;<BR>        //hardcode grid levels if you know what will work best in your case.<BR>        /*geometryDefEdit.GridCount_2 = 2;<BR>        //grid index is zero based<BR>        geometryDefEdit.set_GridSize(0, 200);<BR>        geometryDefEdit.set_GridSize(1, 500);*/<BR>        //otherwise allow ArcGIS to set valid grid values based on the features added.<BR>        geometryDefEdit.GridCount_2 = 1;<BR>        geometryDefEdit.set_GridSize(0, 0);<BR>        geometryDefEdit.HasM_2 = false;<BR>        geometryDefEdit.HasZ_2 = true;<BR>        geometryDefEdit.SpatialReference_2 = spatialReference;<BR></P>
<P>        //create Shape Field<BR>        IField field = new FieldClass();<BR>        //cast for IFieldEdit<BR>        IFieldEdit fieldEdit = (IFieldEdit)field;<BR>        //IFieldEdit::GeometryDef<BR>        fieldEdit.Name_2 = "SHAPE";<BR>        fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;<BR>        fieldEdit.IsNullable_2 = true;<BR>        fieldEdit.GeometryDef_2 = geometryDef;</P>
<P><BR> </P>
<P>        return field;<BR>    }</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部