#ifndef MAP_PRJ_H #define MAP_PRJ_H #ifdef MAPPRJ_EXPORTS #define MAPPRJ_API __declspec(dllexport) #else #define MAPPRJ_API __declspec(dllimport) #endif /* * 文件名称:MapPrj.h * 文件标识: * 摘 要:地图坐标转换动态链接库,实现如下的功能: * 1)地理坐标(经纬度)与高斯平面直角坐标之间的转换,包括正变换、反变换和换代计算; * 2)空间大地坐标(L、B、H)与空间大地直角坐标(X、Y、Z)之间的相互变换; * 3)不同大地坐标之间的转换,转换模型包括:三参数、四参数、和布尔莎七参数; * 4)两点之间的水平距离、倾距和方位角的计算; * 5)目标坐标的计算,已知一点经纬度,另一点相对它的方位角和距离,计算另外一点的经纬度坐标 * 6)不同平面直角坐标系之间的坐标转换,基于仿射变换的四参数模型 * * 当前版本:1.0 * 作 者:郭新平 * 完成日期:2011年5月11日 * 修改时间:1)2013年11月10日, 修改内容:按照标准DLL函数输出格式,提供包含DLL接口函数的头文件 * 2)增加平面直角坐标系之间的变换 */ //功能:求解高斯投影正变换,大地坐标LB转高斯平面直角坐标XY //输入: L 大地坐标的经度,以°为单位,经度范围【-180,180】 // B 大地坐标的纬度,以°为单位 // coordType 坐标系类型:1为BJ54坐标,2为xian80坐标系,3为wgs84坐标系 // zoneWidth 投影带宽,分6°带和3°带 //输出: X 高斯平面直角坐标系的北向坐标,以m为单位 // Y 高斯平面直角坐标系的东向坐标,以m为单位 MAPPRJ_API void LB2XY(double &X, double &Y, const double L, const double B, const int coordType = 3, const int zoneWidth = 6); //功能:求解高斯投影反变换,高斯平面直角坐标XY转大地经纬度L、B //输入: X 高斯平面直角坐标系的北向坐标,以m为单位 // Y 高斯平面直角坐标系的东向坐标,以m为单位,注意:Y包含投影带信息 // coordType 坐标系类型:1为BJ54坐标,2为xian80坐标系,3为wgs84坐标系 // zoneWidth 投影带宽,分6°带和3°带 //输出: L 大地坐标系的经度,以°为单位,经度范围【-180,180】 // B 大地坐标系的纬度,以°为单位 MAPPRJ_API void XY2LB(double &L, double &B, const double X, const double Y, const int coordType = 3, const int zoneWidth = 6); //功能:求解两点之间的水平距离和方位角 //输入: fromPtLon 起始点的经度,以°为单位 // fromPtLat 起始点的纬度,以°为单位 // toPtLon 终止点的经度,以°为单位 // toPtLat 终止点的纬度,以°为单位 // coordType 坐标系类型:1为BJ54坐标,2为xian80坐标系,3为wgs84坐标系 //输出: distance 两点之间的水平距离, 以m为单位 // azAngle 起始点到终止点的方位角, 以°为单位 MAPPRJ_API void CalculateTwoPtsDistanceAzimuth(double &distance, double &azAngle, const double fromPtLon, const double fromPtLat, const double toPtLon, const double toPtLat, const int coordType); //功能:求解两点连线的方位角 //输入: fromPtLon 起始点的经度,以°为单位,经度范围【-180,180】 // fromPtLat 起始点的纬度,以°为单位 // toPtLon 终止点的经度,以°为单位,,经度范围【-180,180】 // toPtLat 终止点的纬度,以°为单位 // coordType 坐标系类型:1为BJ54坐标,2为xian80坐标系,3为wgs84坐标系 //输出: azAngle 起始点到终止点的方位角, 以°为单位,范围【0,360】 MAPPRJ_API void CalculateTwoPtsAzimuth(double &azAngle, const double fromPtLon, const double fromPtLat, const double toPtLon, const double toPtLat, const int coordType); //功能:求解两点间的水平距离 //输入: fromPtLon 起始点的经度,以°为单位,经度范围【-180,180】 // fromPtLat 起始点的纬度,以°为单位 // toPtLon 终止点的经度,以°为单位,经度范围【-180,180】 // toPtLat 终止点的纬度,以°为单位 // coordType 坐标系类型:1为BJ54坐标,2为xian80坐标系,3为wgs84坐标系 //输出: dis 起始点到终止点的距离, 以m为单位 MAPPRJ_API void CalculateTwoPtsDistance(double &dis, const double fromPtLon, const double fromPtLat, const double toPtLon, const double toPtLat, const int coordType); //功能:求解两点间的斜距 //输入: ptForm[0] 起始点的经度,以°为单位,经度范围【-180,180】 // ptForm[1] 起始点的纬度,以°为单位 // ptForm[2] 起始点的高度,以m为单位 //输入: ptTo[0] 结束点的经度,以°为单位,经度范围【-180,180】 // ptTo[1] 结束点的纬度,以°为单位 // ptTo[2] 结束点的高度,以m为单位 // coordType 坐标系类型:1为BJ54坐标,2为xian80坐标系,3为wgs84坐标系 //输出: dis 起始点与终止点的斜距, 以m为单位 MAPPRJ_API void CalculateTwoPtsSlopeDistance(double &dis, const double *ptForm, const double *ptTo, const int coordType); //功能:计算目标点的经纬度 //输入: fromPtLon 起始点的经度,以°为单位 // fromPtLat 起始点的纬度,以°为单位 // azAngle 起始点到目标点的方位角,以°为单位 // distance 起始点与目标点的水平距离,以m为单位 // coordType 坐标系类型:1为BJ54坐标,2为xian80坐标系,3为wgs84坐标系 //输出: targetPtLon 目标点的经度,以°为单位 // targetPtLat 目标点的纬度,以°为单位 MAPPRJ_API void CalculatePtCoordinate(double &targetPtLon, double &targetPtLat, const double fromPtLon, const double fromPtLat, const double azAngle, const double distance, const int coordType); //功能:同一个椭球体的空间直角坐标系转大地坐标系 //输入:空间直角坐标系,椭球体类型type(1为北京54坐标系,2为西安80坐标系,3为WGS84坐标系) //输出:经纬高 //功能:WGS84坐标系转北京54坐标系,单点转换 //输入: XYZ 空间直角坐标,其中: // XYZ[0]------X,以m为单位 // XYZ[1]------Y,以m为单位 // XYZ[2]------Z,以m为单位 // type 椭球体类型,其中: // 1------北京54 // 2------西安80 // 3------WGS84 //输出: LLA 大地坐标,其中: // LLA[0]------经度,以°为单位 // LLA[1]------纬度,以°为单位 // LLA[2]------高度,以m为单位 MAPPRJ_API void XYZ2LLA(double *LLA, const double *XYZ, const int type); //功能:同一个椭球体的大地坐标系转空间直角坐标系 //输入: LLA 大地坐标,其中: // LLA[0]------经度,以°为单位 // LLA[1]------纬度,以°为单位 // LLA[2]------高度,以m为单位 // type 椭球体类型,其中: // 1------北京54 // 2------西安80 // 3------WGS84 //输出: XYZ 空间直角坐标,其中: // XYZ[0]------X,以m为单位 // XYZ[1]------Y,以m为单位 // XYZ[2]------Z,以m为单位 MAPPRJ_API void LLA2XYZ(double *XYZ, const double *LLA, const int type); //功能:北京54坐标系转WGS84坐标系,单点转换 //输入: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 // sevenParameter 七参数数值,其中: // sevenParameter[0]------dX,以m为单位 // sevenParameter[1]------dY,以m为单位 // sevenParameter[2]------dZ,以m为单位 // sevenParameter[3]------eX,以秒为单位 // sevenParameter[4]------eY,以秒为单位 // sevenParameter[5]------eZ,以秒为单位 // sevenParameter[6]------k, 尺度比ppm,百万分之几 //输出: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 MAPPRJ_API void Bj54ToWGS84_SevenParameter(double *wgs84, const double *bj54, const double *sevenParameter); //功能:北京54坐标系转西安80坐标系,单点转换 //输入: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 // sevenParameter 七参数数值,其中: // sevenParameter[0]------dX,以m为单位 // sevenParameter[1]------dY,以m为单位 // sevenParameter[2]------dZ,以m为单位 // sevenParameter[3]------eX,以秒为单位 // sevenParameter[4]------eY,以秒为单位 // sevenParameter[5]------eZ,以秒为单位 // sevenParameter[6]------k, 尺度比ppm,百万分之几 //输出: xian80 西安80坐标系下的经纬高,其中: // xian80[0]------经度,以°为单位 // xian80[1]------纬度,以°为单位 // xian80[2]------高度,以m为单位 MAPPRJ_API void Bj54ToXian80_SevenParameter(double *xian80, const double *bj54, const double *sevenParameter); //功能:WGS84坐标系转北京54坐标系,单点转换 //输入: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 // sevenParameter 七参数数值,其中: // sevenParameter[0]------dX,以m为单位 // sevenParameter[1]------dY,以m为单位 // sevenParameter[2]------dZ,以m为单位 // sevenParameter[3]------eX,以秒为单位 // sevenParameter[4]------eY,以秒为单位 // sevenParameter[5]------eZ,以秒为单位 // sevenParameter[6]------k, 尺度比ppm,百万分之几 //输出: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 MAPPRJ_API void WGS84ToBj54_SevenParameter(double *bj54, const double *wgs84, const double *sevenParameter); //功能:WGS84坐标系转西安80坐标系,单点转换 //输入: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 // sevenParameter 七参数数值,其中: // sevenParameter[0]------dX,以m为单位 // sevenParameter[1]------dY,以m为单位 // sevenParameter[2]------dZ,以m为单位 // sevenParameter[3]------eX,以秒为单位 // sevenParameter[4]------eY,以秒为单位 // sevenParameter[5]------eZ,以秒为单位 // sevenParameter[6]------k, 尺度比ppm,百万分之几 //输出: xian80 西安80坐标系下的经纬高,其中: // xian80[0]------经度,以°为单位 // xian80[1]------纬度,以°为单位 // xian80[2]------高度,以m为单位 MAPPRJ_API void WGS84ToXian80_SevenParameter(double *xian80, const double *wgs84, const double *sevenParameter); //功能:西安80坐标系转北京54坐标系,单点转换 //输入: xian80 西安80坐标系下的经纬高,其中: // xian80[0]------经度,以°为单位 // xian80[1]------纬度,以°为单位 // xian80[2]------高度,以m为单位 // sevenParameter 七参数数值,其中: // sevenParameter[0]------dX,以m为单位 // sevenParameter[1]------dY,以m为单位 // sevenParameter[2]------dZ,以m为单位 // sevenParameter[3]------eX,以秒为单位 // sevenParameter[4]------eY,以秒为单位 // sevenParameter[5]------eZ,以秒为单位 // sevenParameter[6]------k, 尺度比ppm,百万分之几 //输出: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 MAPPRJ_API void Xian80ToBj54_SevenParameter(double *bj54, const double *xian80, const double *sevenParameter); //功能:西安80坐标系转WGS84坐标系,单点转换 //输入: xian80 西安80坐标系下的经纬高,其中: // xian80[0]------经度,以°为单位 // xian80[1]------纬度,以°为单位 // xian80[2]------高度,以m为单位 // sevenParameter 七参数数值,其中: // sevenParameter[0]------dX,以m为单位 // sevenParameter[1]------dY,以m为单位 // sevenParameter[2]------dZ,以m为单位 // sevenParameter[3]------eX,以秒为单位 // sevenParameter[4]------eY,以秒为单位 // sevenParameter[5]------eZ,以秒为单位 // sevenParameter[6]------k, 尺度比ppm,百万分之几 //输出: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 MAPPRJ_API void Xian80ToWgs84_SevenParameter(double *wgs84, const double *xian80, const double *sevenParameter); //功能:北京54坐标系转WGS84坐标系,单点转换 //输入: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 // ThreeParameter 三参数数值,其中: // ThreeParameter[0]------dX,以m为单位 // ThreeParameter[1]------dY,以m为单位 // ThreeParameter[2]------dZ,以m为单位 //输出: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 MAPPRJ_API void Bj54ToWGS84_ThreeParameter(double *wgs84, const double *bj54, const double *ThreeParameter); //功能:WGS84坐标系转北京54坐标系,单点转换 //输入: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 // ThreeParameter 三参数数值,其中: // ThreeParameter[0]------dX,以m为单位 // ThreeParameter[1]------dY,以m为单位 // ThreeParameter[2]------dZ,以m为单位 //输出: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 MAPPRJ_API void WGS84ToBj54_ThreeParameter(double *bj54, const double *wgs84, const double *ThreeParameter); //功能:计算不同大地坐标系间转换的参数,采用布尔莎七参数模型 //输入: nowLLA 当前坐标系的大地坐标,其中nowLLA的数组长度为3*ptNum: // nowLLA[0+3*i]------经度,以°为单位 // nowLLA[1+3*i]------纬度,以°为单位 // nowLLA[2+3*i]------高度,以m为单位 // 0<= i < ptNum // nowType 当前坐标系的椭球体类型,其中: // 1------北京54 // 2------西安80 // 3------WGS84 // aimLLA 目标坐标系的大地坐标,其中的数组长度为3*ptNum: // aimLLA[0+3*i]------经度,以°为单位 // aimLLA[1+3*i]------纬度,以°为单位 // aimLLA[2+3*i]------高度,以m为单位 // 0<= i < ptNum // aimType 目标坐标系的椭球体类型,其中: // 1------北京54 // 2------西安80 // 3------WGS84 // ptNum 控制点的个数(即在当前坐标系和目标坐标系都有坐标的点的个数) //输出: sevenParameter 七参数数值,其中: // sevenParameter[0]------dX,以m为单位 // sevenParameter[1]------dY,以m为单位 // sevenParameter[2]------dZ,以m为单位 // sevenParameter[3]------eX,以秒为单位 // sevenParameter[4]------eY,以秒为单位 // sevenParameter[5]------eZ,以秒为单位 // sevenParameter[6]------k, 尺度比ppm,百万分之几 MAPPRJ_API void CalculateSevenParameters(double *sevenParameter, const double *nowLLA, const int nowType, const double *aimLLA, const int aimType, const int ptNum); //功能:计算不同大地坐标系间转换的参数,采用布尔莎七参数模型 //输入: nowXYZ 当前坐标系的空间直角坐标,其中nowXYZ的数组长度为3*ptNum: // nowXYZ[0+3*i]------X,以m为单位 // nowXYZ[1+3*i]------Y,以m为单位 // nowXYZ[2+3*i]------Z,以m为单位 // 0<= i < ptNum // aimXYZ 目标坐标系的空间直角坐标,其中aimXYZ的数组长度为3*ptNum: // aimXYZ[0+3*i]------X,以m为单位 // aimXYZ[1+3*i]------Y,以m为单位 // aimXYZ[2+3*i]------Z,以m为单位 // 0<= i < ptNum // ptNum 控制点的个数(即在当前坐标系和目标坐标系都有坐标的点的个数) //输出: sevenParameter 七参数数值,其中: // sevenParameter[0]------dX,以m为单位 // sevenParameter[1]------dY,以m为单位 // sevenParameter[2]------dZ,以m为单位 // sevenParameter[3]------eX,以秒为单位 // sevenParameter[4]------eY,以秒为单位 // sevenParameter[5]------eZ,以秒为单位 // sevenParameter[6]------k, 尺度比ppm,百万分之一 MAPPRJ_API void CalculateSevenParameters(double *sevenParameter, const double *nowXYZ, const double *aimXYZ, const int ptNum); //功能:计算不同大地坐标系间转换的参数,采用三参数模型 //输入: nowLLA 当前坐标系的大地坐标,其中: // nowLLA[0]------经度,以°为单位 // nowLLA[1]------纬度,以°为单位 // nowLLA[2]------高度,以m为单位 // nowType 当前坐标系的椭球体类型,其中: // 1------北京54 // 2------西安80 // 3------WGS84 // aimLLA 目标坐标系的大地坐标,其中: // aimLLA[0]------经度,以°为单位 // aimLLA[1]------纬度,以°为单位 // aimLLA[2]------高度,以m为单位 // aimType 目标坐标系的椭球体类型,其中: // 1------北京54 // 2------西安80 // 3------WGS84 //输出: dx X轴的坐标平移量,以m为单位 // dy Y轴的坐标平移量,以m为单位 // dz Z轴的坐标平移量,以m为单位 MAPPRJ_API void CalculateThreeParameters(double &dx, double &dy, double &dz, const double *nowLLA, const int nowType, const double *aimLLA, const int aimType); //功能:计算不同大地坐标系间转换的参数,采用三参数模型 //输入: nowXYZ 当前坐标系的空间直角坐标,其中: // nowXYZ[0]------X,以m为单位 // nowXYZ[1]------Y,以m为单位 // nowXYZ[2]------Z,以m为单位 // aimXYZ 目标坐标系的空间直角坐标,其中: // aimXYZ[0]------X,以m为单位 // aimXYZ[1]------Y,以m为单位 // aimXYZ[2]------Z,以m为单位 //输出: dx X轴的坐标平移量,以m为单位 // dy Y轴的坐标平移量,以m为单位 // dz Z轴的坐标平移量,以m为单位 MAPPRJ_API void CalculateThreeParameters(double &dx, double &dy, double &dz, const double *nowXYZ, const double *aimXYZ); //功能:计算不同平面直角坐标系间转换的参数,采用四参数模型 //输入: nowXY 当前坐标系的空间直角坐标,其中nowXY的数组长度为2*ptNum: // nowXYZ[0+2*i]------X,以m为单位 // nowXYZ[1+2*i]------Y,以m为单位 // 0<= i < ptNum // aimXY 目标坐标系的空间直角坐标,其中aimXYZ的数组长度为2*ptNum: // aimXYZ[0+2*i]------X,以m为单位 // aimXYZ[1+2*i]------Y,以m为单位 // 0<= i < ptNum // ptNum 控制点的个数(即在当前坐标系和目标坐标系都有坐标的点的个数) //输出: fourParameters 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 MAPPRJ_API void CalculateFourParameters(double *fourParameters, const double *nowXY, const double *aimXY, const int ptNum); //功能:计算不同平面直角坐标系间转换的参数,采用四参数模型 //输入: nowLLA 当前坐标系的大地坐标,其中nowLLA的数组长度为2*ptNum: // nowXYZ[0+2*i]------经度,以°为单位 // nowXYZ[1+2*i]------纬度,以°为单位 // 0<= i < ptNum // nowType 当前坐标系的椭球体类型,其中: // 1------北京54 // 2------西安80 // 3------WGS84 // aimLLA 目标坐标系的大地坐标,其中aimLLA的数组长度为2*ptNum: // aimLLA[0+2*i]------经度,以°为单位 // aimLLA[1+2*i]------纬度,以°为单位 // 0<= i < ptNum // aimType 目标坐标系的椭球体类型,其中: // 1------北京54 // 2------西安80 // 3------WGS84 // ptNum 控制点的个数(即在当前坐标系和目标坐标系都有坐标的点的个数) //输出: fourParameters 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 MAPPRJ_API void CalculateFourParameters(double *fourParameters, const double *nowLLA, const int nowType, const double *aimLLA, const int aimType, const int ptNum); //功能:北京54坐标系转WGS84坐标系,单点转换 //输入: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 // fourParameter 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 //输出: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 MAPPRJ_API void Bj54ToWGS84_FourParameter(double *wgs84, const double *bj54, const double *fourParameter); //功能:北京54坐标系转西安80坐标系,单点转换 //输入: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 // fourParameter 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 //输出: xian80 西安80坐标系下的经纬高,其中: // xian80[0]------经度,以°为单位 // xian80[1]------纬度,以°为单位 // xian80[2]------高度,以m为单位 MAPPRJ_API void Bj54ToXian80_FourParameter(double *xian80, const double *bj54, const double *fourParameter); //功能:WGS84坐标系转北京54坐标系,单点转换 //输入: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 // fourParameter 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 //输出: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 MAPPRJ_API void WGS84ToBj54_FourParameter(double *bj54, const double *wgs84, const double *fourParameter); //功能:WGS84坐标系转西安80坐标系,单点转换 //输入: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 // fourParameter 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 //输出: xian80 西安80坐标系下的经纬高,其中: // xian80[0]------经度,以°为单位 // xian80[1]------纬度,以°为单位 // xian80[2]------高度,以m为单位 MAPPRJ_API void WGS84ToXian80_FourParameter(double *xian80, const double *wgs84, const double *fourParameter); //功能:西安80坐标系转北京54坐标系,单点转换 //输入: xian80 西安80坐标系下的经纬高,其中: // xian80[0]------经度,以°为单位 // xian80[1]------纬度,以°为单位 // xian80[2]------高度,以m为单位 // fourParameter 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 //输出: bj54 北京54坐标系下的经纬高,其中: // bj54[0]------经度,以°为单位 // bj54[1]------纬度,以°为单位 // bj54[2]------高度,以m为单位 MAPPRJ_API void Xian80ToBj54_FourParameter(double *bj54, const double *xian80, const double *fourParameter); //功能:西安80坐标系转WGS84坐标系,单点转换 //输入: xian80 西安80坐标系下的经纬高,其中: // xian80[0]------经度,以°为单位 // xian80[1]------纬度,以°为单位 // xian80[2]------高度,以m为单位 // fourParameter 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 //输出: wgs84 WGS84坐标系下的经纬高,其中: // wgs84[0]------经度,以°为单位 // wgs84[1]------纬度,以°为单位 // wgs84[2]------高度,以m为单位 MAPPRJ_API void Xian80ToWgs84_FourParameter(double *wgs84, const double *xian80, const double *fourParameter); //功能:不同平面直角坐标之间的变换,单点转换 //输入: pFromCoord 一个平面直角坐标系下的X、Y坐标,其中: // pFromCoord[0]------X坐标,以m为单位 // pFromCoord[1]------Y坐标,以m为单位 // fourParameter 四参数数值,其中: // fourParameters[0]------xo,X方向坐标平移量,以m为单位 // fourParameters[1]------yo,Y方向坐标平移量,以m为单位 // fourParameters[2]------p,比例系数,无单位 // fourParameters[3]------q,比例系数,无单位 //输出: pToCoord 目标平面直角坐标系下的X、Y坐标,其中: // pToCoord[0]------X坐标,以m为单位 // pToCoord[1]------Y坐标,以m为单位 MAPPRJ_API void PlaneCoordTransform_FourParameter(double *pToCoord, const double *pFromCoord, const double *fourParameter); #endif