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