• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
bobird的学习笔记
博客园    首页    新随笔    联系   管理    订阅  订阅
SpatialReference设置

前言:

 

    在基于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中的各项以达到相同的目的

 

posted on 2013-07-04 12:15  bobird  阅读(7165)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3