对坐标点进行投影坐标和地理坐标的转换,不需要套用复杂的公式,两款GIS软件都提供了现成的函数供二次开发人员调用,分别举例说明一下:
(1)MapGIS二次开发中投影坐标和地理坐标的转换
GIS平台:MapGIS 6.7
语言:C++
头文件:Cordcvt.h
代码示例:
void TransPara(double &x, double &y,MAP_PARA pInMappara, MAP_PARA pOutMappara)
{
CProjTrans pTrans=_GetCProjTrans();
_MapToInPara(pTrans,pInMappara);
_MapToOutPara(pTrans,pOutMappara);
_PntCProjTrans(pTrans,&x,&y);//转换后结果存储到x,y变量中
}
代码说明:
投影直角坐标系和地理坐标系的互转是通过将pInMappara和pOutMappara互换实现的,MapGIS中关于投影参数变量的赋值请参考这篇文章:
(2)ArcGIS二次开发中投影坐标和地理坐标的转换
CIS平台:ArcGIS 9.3以上版本
语言:C#
引用:ESRI.ArcGIS.Geometry;
代码示例:
public static void TransPara(IPoint pt, out double x, out double y, int inpara, int outpara)
{
IGeometry geo = (IGeometry)pt;
ISpatialReferenceFactory pSRF=new SpatialReferenceEnvironmentClass();
IGeographicCoordinateSystem earthref = pSRF.CreateGeographicCoordinateSystem(inpara);
geo.SpatialReference = pSRF.CreateProjectedCoordinateSystem(outpara);
geo.Project(earthref);
x = pt.X;
y = pt.Y;
}
代码说明:
上述代码中inpara和outpara是ArcGIS空间参照系的WKID值,每一个空间参考对应一个ID值,详细的对照表参见这篇文章:

虽然不是很明白,但还是认真的看了一遍,