地理坐标和投影坐标转换程序,基于ArcGIS Engine

通常需要将经纬度坐标与投影坐标相互转换,下面是一些源码,在ArcEngine中实现。

 

投影转经纬度

private IPoint PRJtoGCS(double x, double y)  

        {  

          IPoint pPoint = new PointClass();  

          pPoint.PutCoords(x, y);  

          ISpatialReferenceFactory pSRF = new SpatialReferenceEnvironmentClass();  

          pPoint.SpatialReference = pSRF.CreateProjectedCoordinateSystem(2428);  

          pPoint.Project(pSRF.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_Beijing1954));  

          return pPoint;  

        }

其中,pPoint.SpatialReference = pSRF.CreateProjectedCoordinateSystem( 2428 );

这行代码是设置pPoint 的空间参考,也就是要转化的点的投影坐标。如果不知道投影坐标的话,转化会报异常。2428 为该投影的enum 值

pPoint.Project(pSRF.CreateGeographicCoordinateSystem(( int)esriSRGeoCSType.esriSRGeoCS_Beijing1954));

将该点的投影坐标转化为经纬度。

 

经纬度到投影

private IPoint GCStoPRJ(IPoint pPoint, int GCSType,int PRJType)

         {    

             ISpatialReferenceFactory pSRF = new SpatialReferenceEnvironmentClass();    

             pPoint.SpatialReference = pSRF.CreateGeographicCoordinateSystem(GCSType);    

             pPoint.Project(pSRF.CreateProjectedCoordinateSystem(PRJType));    

 

             return pPoint;  

        }

 

//同样的一个函数

 

private IPoint GCStoPRJ(IPoint pPoint)

{

            ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironment();

            pPoint.SpatialReference = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_Krasovsky1940);

            IProjectedCoordinateSystem pProjectCoodinateSys = pSpatialReferenceFactory.CreateProjectedCoordinateSystem((int)esriSRProjCS4Type.esriSRProjCS_Xian1980_GK_Zone_17);

            ISpatialReference pSpatialReference = (ISpatialReference)pProjectCoodinateSys;

            pSpatialReference.SetDomain(17352988.066800, 18230892.557100, 2326007.173500, 3237311.062300);

            pPoint.Project(pSpatialReference);

}

 

//球面坐标

//esriSRGeoCS_WGS1984 4326 WGS 1984. 

//esriSRGeoCS_Beijing1954 4214 Beijing 1954.

 

//平面坐标

北京54六度带

//esriSRProjCS_Beijing1954GK_13 21413 Beijing 1954 GK Zone 13. 

//esriSRProjCS_Beijing1954GK_14 21414 Beijing 1954 GK Zone 14. 

//esriSRProjCS_Beijing1954GK_15 21415 Beijing 1954 GK Zone 15. 

//esriSRProjCS_Beijing1954GK_16 21416 Beijing 1954 GK Zone 16. 

//esriSRProjCS_Beijing1954GK_17 21417 Beijing 1954 GK Zone 17. 

//esriSRProjCS_Beijing1954GK_18 21418 Beijing 1954 GK Zone 18. 

//esriSRProjCS_Beijing1954GK_19 21419 Beijing 1954 GK Zone 19. 

//esriSRProjCS_Beijing1954GK_20 21420 Beijing 1954 GK Zone 20. 

//esriSRProjCS_Beijing1954GK_21 21421 Beijing 1954 GK Zone 21. 

//esriSRProjCS_Beijing1954GK_22 21422 Beijing 1954 GK Zone 22. 

//esriSRProjCS_Beijing1954GK_23 21423 Beijing 1954 GK Zone 23. 

//esriSRProjCS_Beijing1954GK_13N 21473 Beijing 1954 GK Zone 13N. 

//esriSRProjCS_Beijing1954GK_14N 21474 Beijing 1954 GK Zone 14N. 

//esriSRProjCS_Beijing1954GK_15N 21475 Beijing 1954 GK Zone 15N. 

//esriSRProjCS_Beijing1954GK_16N 21476 Beijing 1954 GK Zone 16N. 

//esriSRProjCS_Beijing1954GK_17N 21477 Beijing 1954 GK Zone 17N. 

//esriSRProjCS_Beijing1954GK_18N 21478 Beijing 1954 GK Zone 18N. 

//esriSRProjCS_Beijing1954GK_19N 21479 Beijing 1954 GK Zone 19N. 

//esriSRProjCS_Beijing1954GK_20N 21480 Beijing 1954 GK Zone 20N. 

//esriSRProjCS_Beijing1954GK_21N 21481 Beijing 1954 GK Zone 21N. 

//esriSRProjCS_Beijing1954GK_22N 21482 Beijing 1954 GK Zone 22N. 

//esriSRProjCS_Beijing1954GK_23N 21483 Beijing 1954 GK Zone 23N. 

北京54三度带

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_102E 2431 Beijing 1954 3 Degree GK CM 102E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_105E 2432 Beijing 1954 3 Degree GK CM 105E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_108E 2433 Beijing 1954 3 Degree GK CM 108E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_111E 2434 Beijing 1954 3 Degree GK CM 111E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_114E 2435 Beijing 1954 3 Degree GK CM 114E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_117E 2436 Beijing 1954 3 Degree GK CM 117E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_120E 2437 Beijing 1954 3 Degree GK CM 120E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_123E 2438 Beijing 1954 3 Degree GK CM 123E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_126E 2439 Beijing 1954 3 Degree GK CM 126E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_129E 2440 Beijing 1954 3 Degree GK CM 129E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_132E 2441 Beijing 1954 3 Degree GK CM 132E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_135E 2442 Beijing 1954 3 Degree GK CM 135E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_25 2401 Beijing 1954 3 Degree GK Zone 25. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_26 2402 Beijing 1954 3 Degree GK Zone 26. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_27 2403 Beijing 1954 3 Degree GK Zone 27. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_28 2404 Beijing 1954 3 Degree GK Zone 28. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_29 2405 Beijing 1954 3 Degree GK Zone 29. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_30 2406 Beijing 1954 3 Degree GK Zone 30. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_31 2407 Beijing 1954 3 Degree GK Zone 31. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_32 2408 Beijing 1954 3 Degree GK Zone 32. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_33 2409 Beijing 1954 3 Degree GK Zone 33. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_34 2410 Beijing 1954 3 Degree GK Zone 34. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_35 2411 Beijing 1954 3 Degree GK Zone 35. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_36 2412 Beijing 1954 3 Degree GK Zone 36. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_37 2413 Beijing 1954 3 Degree GK Zone 37. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_38 2414 Beijing 1954 3 Degree GK Zone 38. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_39 2415 Beijing 1954 3 Degree GK Zone 39. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_40 2416 Beijing 1954 3 Degree GK Zone 40. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_41 2417 Beijing 1954 3 Degree GK Zone 41. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_42 2418 Beijing 1954 3 Degree GK Zone 42. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_43 2419 Beijing 1954 3 Degree GK Zone 43. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_44 2420 Beijing 1954 3 Degree GK Zone 44. 

//esriSRProjCS_Beijing1954_3_Degree_GK_Zone_45 2421 Beijing 1954 3 Degree GK Zone 45. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_75E 2422 Beijing 1954 3 Degree GK CM 75E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_78E 2423 Beijing 1954 3 Degree GK CM 78E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_81E 2424 Beijing 1954 3 Degree GK CM 81E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_84E 2425 Beijing 1954 3 Degree GK CM 84E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_87E 2426 Beijing 1954 3 Degree GK CM 87E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_90E 2427 Beijing 1954 3 Degree GK CM 90E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_93E 2428 Beijing 1954 3 Degree GK CM 93E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_96E 2429 Beijing 1954 3 Degree GK CM 96E. 

//esriSRProjCS_Beijing1954_3_Degree_GK_CM_99E 2430 Beijing 1954 3 Degree GK CM 99E.

 

 

如果亲觉得我们的文章还不错的话,那就请分享转发一下吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值