求教使用ArcEngine编写投影转换和基准面转换的问题
public void ChangeProject(IFeatureClass pFeatureClass,int PGSvalue){
IWorkspaceEdit pWorkspaceEdit = (pFeatureClass as IDataset).Workspace as IWorkspaceEdit;
pWorkspaceEdit.StartEditing(true);
pWorkspaceEdit.StartEditOperation();
IFeatureLayer pFeatureLayer = new FeatureLayerClass();
pFeatureLayer.FeatureClass = pFeatureClass;
IFeatureCursor pFeatureCursor = pFeatureLayer.Search(null, false);
IFeature pFeature = pFeatureCursor.NextFeature();
ISpatialReferenceFactory2 pSpatRefFact = new SpatialReferenceEnvironmentClass();
IProjectedCoordinateSystem pPCS = pSpatRefFact.CreateProjectedCoordinateSystem(PGSvalue);
ISpatialReference pSpatialReference = pPCS as ISpatialReference;
while (pFeature != null)
{
pFeature.Shape.Project(pSpatialReference);
pFeature.Shape.Envelope.Project(pSpatialReference);
pFeature.Store();
pFeature = pFeatureCursor.NextFeature();
}
pWorkspaceEdit.StopEditOperation();
pWorkspaceEdit.StopEditing(true);
IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;
if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)
{
pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);
pFeatureLayer.SpatialReference = pSpatialReference;
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
} --------------------编程问答-------------------- 追加内容:
这是小弟最近在用ArcEngine编写进行投影转换和基准面转换的工具,因为要求不能调用GP,所以功能要自己写,但是不知道应该调用哪个接口,思路如何,自己摸索着写了一个,转出的数据在投影信息上显示是正确的,但是它的Extent属性与用ArcGIS转出的数据不一致,求教各位给点建议,我把投影转换的代码贴出来,大家给指点一下。另外还有一个问题,在投影转换的时候需要识别目标投影和原文件的投影是不是基于同一个地理坐标系,这个应该怎么识别,需要用那些借口,求各位大大解答。 --------------------编程问答-------------------- 各位大大,求回复啊,小弟等的很着急啊
补充:.NET技术 , 组件/控件开发