You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

812 lines
26 KiB
C

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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);
//功能:同一个椭球体的空间直角坐标系转大地坐标系
//输入空间直角坐标系椭球体类型type1为北京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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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]------xoX方向坐标平移量以m为单位
// fourParameters[1]------yoY方向坐标平移量以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