欢迎来到天天文库
浏览记录
ID:7864968
大小:47.50 KB
页数:8页
时间:2018-03-01
《ae中的坐标系统转换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AE中的坐标系统转换ArcEngine开发总结2008-09-0422:47:33阅读405评论0字号:大中小 在搞AE开发的时候,经常碰到的一个问题就是不同坐标系统之间的转换,AE中IGlobeControl控件中提供了IGlobeViewUtil类实现了大地坐标、屏幕坐标和地理坐标三者之间的转换,IMapControl中则提供了ToMapPoint和FromMapPoint两种方法实现屏幕坐标和地理坐标之间的转换,但在实际开发中,这些转换还不够,比如当我们需要实现地理坐标转换到自定义格式的大地坐标时,上述方法则不能解决这些问题,最好的解决方法是使
2、用IGeometry对象的Project方法,实现不同空间参照系之间的相互转换。以下以地理坐标转为自定义的Albers坐标系统为例予以说明,其主要用到的接口有ISpatialReferenceFactory、IProjectedCoordinateSystem、IProjectedCoordinateSystemEdit、ISpatialReferenceFactory、IGeographicCoordinateSystem、ISpatialReference等: 其C#代码如下: //将任意坐标系统转换为自定义Albers大地坐标(米)
3、 publicstaticIPointGeoToGra(IPointpoint) { IPointpt=newPointClass(); pt.PutCoords(point.X,point.Y); ISpatialReferenceFactory2pFact=newSpatialReferenceEnvironmentClass(); //定义地理坐标,由输入的对象决定,也可以自己定义,参考:esriSRGeoCSType IGeograph
4、icCoordinateSystempGCS=newGeographicCoordinateSystemClass(); pGCS=pFact.CreateGeographicCoordinateSystem(point.SpatialReference.FactoryCode); //自定义投影方式 IProjectedCoordinateSystempProjectedCS=newProjectedCoordinateSystemClass(); IProje
5、ctedCoordinateSystemEditpProjectedCSEdit=pProjectedCSasIProjectedCoordinateSystemEdit; //定义投影方式,参考:esriSRProjectionType IProjectionpProjection=newProjectionClass(); pProjection=pFact.CreateProjection((int)esriSRProjectionType.esriSRProjection_Albers);
6、 //定义投影单位,参考:esriSRUnitType ILinearUnitpUnit=newLinearUnitClass(); pUnit=pFact.CreateUnit((int)esriSRUnitType.esriSRUnit_Meter)asILinearUnit; //定义其他参数,参考:esriSRParameterType IParameter[]pParm=newIParameter[6]; pParm[0]=pFact.Crea
7、teParameter((int)esriSRParameterType.esriSRParameter_FalseEasting); pParm[0].Value=0; pParm[1]=pFact.CreateParameter((int)esriSRParameterType.esriSRParameter_FalseNorthing); pParm[1].Value=0; pParm[2]=pFact.CreateParameter((int)esriSRParameterTy
8、pe.es
此文档下载收益归作者所有