|
阅读:1263回复:2
[求助]判断新层坐标系是否和已有的相同,代码出错
<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> |
|
|
1楼#
发布于: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> |
|
|
2楼#
发布于:2007-11-27 21:31
<P>看不太懂啊,不会c#,但是还是很感谢你<STRONG><FONT face=Verdana color=#61b713>wavvylia</FONT></STRONG></P>
|
|