前言:
在基於Arcgis平台的地理信息系統開發中,數據有時是從別的平台的格式中轉過來的,如從CAD轉成Shapefile格式,在格式轉換的過程中,經常會出現SpatialReference丟失的現象,這樣的數據在使用中就會出現一些問題。為此,需要人為設置數據的SpatialReference。有兩種方式設置SpatialReference。詳述如下: 1、通過desktop設置數據的SpatialReference 可以用desktop的arccatalog,找到數據文件,選中點右鍵\properties,在彈出來的shapefile properties對話框中,選fields\Shape,在Shape字段屬性中選 spatial reference,彈出spatial reference 屬性對話框,利用這個對話框設置數據文件的SpatialReference。 2、數據加載過程中設置圖層的SpatialReference 可以在數據加載過程中設置圖層的空間參考,方法如下(以西安80坐標系為例) 打開數據,獲取數據的featureclass,記為變量i_ftrCls;
IFeatureLayer i_ftrLyr =new FeatureLayer();//生成新的featurelayer
i_ftrLyr.FeatureClass=i_ftrCls;
//通過SpatialReferenceEnvironmen創建新的SpatialReference
ISpatialReferenceFactory ispfac=new ESRI.ArcGIS.Geometry.SpatialReferenceEnvironmen();
IGeographicCoordinateSystem igeocoorsys=ispfac.CreateGeographicCoordinateSystem(esriSRGeoCS_Xian1980);
i_ftrLyr.SpatialReference=igeosys;//設置featurelayer的SpatialReference axMapControl1.AddLayer(i_ftrLyr,0);//加載數據
注:上述esriSRGeoCS_Xian1980是arcgis Enging中定義好的SpatialReference,如果所需的SpatialReference在AE中沒有預先定義,就可以通過ISpatialReference接口里的一系列方法和屬性設置SpatialReference中的各項以達到相同的目的