Engine中如何修改要素类或者栅格数据的空间参考?

Engine中如何修改要素类或者栅格数据的空间参考?
已邀请:

朱新颖

赞同来自:

【解决办法】:
​使用IGeoDatasetSchemaEdit.AlterSpatialReference方法修改空间参考(这里相当于ArcMap中Define Projection工具的作用,只是修改了空间参考,但是数据并没有进行投影,要与Project相区别),可参考下面代码: 


IGeoDataset geodataset = featureClass as IGeoDataset; //栅格的话就把IRasterDataset转为IGeoDataset
            ISchemaLock schemaLock = (ISchemaLock)geodataset;
            schemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock);
            IGeoDatasetSchemaEdit geoDatasetSchemaEdit = geodataset as IGeoDatasetSchemaEdit;
            if (geoDatasetSchemaEdit.CanAlterSpatialReference)
            {
                ISpatialReferenceFactory3 spatialReferenceFactory = new SpatialReferenceEnvironmentClass();
                ISpatialReference spatialReference = spatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_Beijing1954) as ISpatialReference;
                geoDatasetSchemaEdit.AlterSpatialReference(spatialReference);
            }
            schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);

要回复问题请先登录注册