|
|
#ifndef GLOBE_H
|
|
|
#define GLOBE_H
|
|
|
|
|
|
#include <afxwin.h>
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////消息定义////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
const UINT WM_SET_LAYER_STATUS = WM_USER+1056; //设置图层的显示状态
|
|
|
const UINT WM_CLOSE_LONLAT_DIALOG = WM_USER+1057; //关闭经度、纬度显示的界面
|
|
|
const UINT WM_CLOSE_DISTANCE_DIALOG = WM_USER+1058; //关闭显示2点之间的测量距离的界面
|
|
|
const UINT WM_CLOSE_LINEDESIGN_DIALOG = WM_USER+1059; //关闭航线设计对话框
|
|
|
|
|
|
const UINT WM_ADD_LINE_POINT = WM_USER+1060; //增加航点
|
|
|
const UINT WM_EDIT_LINE_POINT = WM_USER+1061; //编辑航点
|
|
|
const UINT WM_DELETE_LINE_POINT = WM_USER+1062; //删除航点
|
|
|
const UINT WM_SAVE_LINE_POINTS = WM_USER+1063; //保存航线
|
|
|
const UINT WM_CHECK_FLY_LINE_STATUS = WM_USER+1064; //检查航线的显示状态
|
|
|
const UINT WM_SEL_UAV = WM_USER+1065; //切换飞机
|
|
|
const UINT WM_DRAW_TARGET = WM_USER+1066; //标绘目标点
|
|
|
|
|
|
const UINT WM_SEND_SELECTTARGET = WM_USER+1067; //在地图上选点
|
|
|
|
|
|
const UINT WM_SEND_CLOSEDEMALT = WM_USER+1068; //关闭高程分析对话框
|
|
|
|
|
|
const UINT WM_SEND_DRAWMARKER = WM_USER+1069; //绘制标记点
|
|
|
|
|
|
const UINT WM_SEND_DRAWUAV = WM_USER+1070; //绘制无人机
|
|
|
|
|
|
//可视域分析相关消息
|
|
|
|
|
|
const UINT WM_SEND_REGIONTOGIS = WM_USER+1073; //可视域分析对话框到GISDlg的消息
|
|
|
const UINT WM_SEND_UPDATEDIALOG = WM_USER+1074; //更新可视域对话框信息
|
|
|
const UINT WM_SHOW_POINTINMAP = WM_USER+1075; //显示通视分析目标点
|
|
|
|
|
|
const UINT WM_SHOW_ISVISIBLE = WM_USER+1076; //显示可视点
|
|
|
const UINT WM_SHOW_NOTVISIBLE = WM_USER+1077; //显示不可视点
|
|
|
const UINT WM_SEND_CLEARSHAPE = WM_USER+1078; //清除图层
|
|
|
|
|
|
const UINT WM_SHOW_VISI_REALTIME = WM_USER+1079; //实时显示可视区域
|
|
|
const UINT WM_SHOW_NOTVISI_REALTIME = WM_USER+1080; //实时显示不可视区域
|
|
|
const UINT WM_SHOW_VISI_DELETE = WM_USER+1081; //清除实时区域
|
|
|
|
|
|
const UINT WM_DEL_LINELAYER = WM_USER+1082; //删除通视等高线图层
|
|
|
const UINT WM_ADD_LINELAYER = WM_USER+1083; //添加点到通视等高线图层
|
|
|
|
|
|
const UINT WM_DRAW_LINEPOINT = WM_USER+1084; //标绘航线上的点
|
|
|
|
|
|
const UINT WM_SHOW_CRASH_REALTIME = WM_USER+1085; //实时显示碰撞检测区域
|
|
|
|
|
|
const UINT WM_SEND_DRAWFIGHT = WM_USER+1086; //绘制作用范围
|
|
|
|
|
|
const UINT WM_SEND_DRAWDEMREGION = WM_USER+1087; //绘制高程数据区域
|
|
|
|
|
|
const UINT WM_SEND_MAPLOCATION = WM_USER+1088; //在线地图定位
|
|
|
|
|
|
const UINT WM_SEND_MAPCURSORMODE = WM_USER+1089; //设置Map CursorMode
|
|
|
|
|
|
const UINT WM_SEND_SHOWSURVEYLINE = WM_USER+1090; //显示测绘航线
|
|
|
|
|
|
const UINT WM_SEND_SHOWSURVEYREGION = WM_USER+1091; //显示测绘区域
|
|
|
|
|
|
const UINT WM_BIND_SURVEYLINE = WM_USER+1092; //装订测绘航线
|
|
|
|
|
|
const UINT WM_CLEAR_TMPSURVEYFEATURE = WM_USER+1093; //清除临时测绘要素
|
|
|
|
|
|
/////////////////////////////////////////////////////////消息定义////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////数据结构体定义////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////数据结构体定义////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//视图类句柄
|
|
|
extern HWND g_viewHwnd;
|
|
|
|
|
|
//红绿灯的位图实例
|
|
|
extern CBitmap g_bmpRed;
|
|
|
extern CBitmap g_bmpGreen;
|
|
|
|
|
|
//黄灯
|
|
|
extern CBitmap g_bmpYellow;
|
|
|
|
|
|
//灰灯
|
|
|
extern CBitmap g_bmpGray;
|
|
|
|
|
|
|
|
|
//数据刷新显示的间隔
|
|
|
extern int g_refreshTimes;
|
|
|
|
|
|
|
|
|
|
|
|
//地图显示区软件界面句柄
|
|
|
extern HWND g_mapHwnd;
|
|
|
|
|
|
|
|
|
//地面站位置
|
|
|
extern double g_gcsLon; //经度
|
|
|
extern double g_gcsLat; //纬度
|
|
|
extern double g_gcsAlt; //高度
|
|
|
|
|
|
//航线设计时航点模式:0为置点;1为航点编辑和删除模式
|
|
|
extern int g_ptModeInLineDesign;
|
|
|
|
|
|
|
|
|
struct UAVState
|
|
|
{
|
|
|
UAVState()
|
|
|
{
|
|
|
pitch = pitchPreset = 0.0;
|
|
|
roll = rollPreset = 0.0;
|
|
|
drift = 0.0;
|
|
|
|
|
|
wflypt = 0;
|
|
|
flyPtH = 0;
|
|
|
wflyDis = 0.0;
|
|
|
|
|
|
orgptDis = 0.0;
|
|
|
}
|
|
|
|
|
|
float pitch; //俯仰角
|
|
|
float pitchPreset; //俯仰给定
|
|
|
float roll; //滚转角
|
|
|
float rollPreset; //滚转给定
|
|
|
float drift; //偏航角
|
|
|
|
|
|
int wflypt; //待飞点
|
|
|
float flyPtH; //航点高度
|
|
|
float wflyDis; //待飞距
|
|
|
float orgptDis; //原点距离
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
struct TargetPt
|
|
|
{
|
|
|
int id;
|
|
|
double lon;
|
|
|
double lat;
|
|
|
};
|
|
|
|
|
|
///////////////////////////////////////////////以下为全局函数///////////////////////////////////////////
|
|
|
|
|
|
|
|
|
//功能:获得软件的运行目录
|
|
|
extern CString GetSoftwareCurrentDirectory();
|
|
|
|
|
|
|
|
|
//功能:在文件夹中查找文件,看其是否存在
|
|
|
//输入:文件或文件夹名称strDir
|
|
|
//返回值:true——存在该文件或文件夹
|
|
|
// false——不存在该文件或文件夹
|
|
|
extern bool SearchDirectory(const CString &strDir);
|
|
|
|
|
|
//功能:新建文件夹
|
|
|
//输入:文件夹名称strDir
|
|
|
//返回值:true——创建成功
|
|
|
// false——创建失败
|
|
|
extern bool CreateDirectory(const CString &strDir);
|
|
|
|
|
|
//提取没有后缀名的文件名
|
|
|
//extern CString ExtractFileName(CString fileName);
|
|
|
|
|
|
//功能:一个字节分成8位,分别存储到数组中
|
|
|
//输入:字节oneByte
|
|
|
//输出:8位的位集合bitArray
|
|
|
extern void BYTE2BitArray(int *bitArray, const BYTE oneByte);
|
|
|
|
|
|
//功能:无符号2个字节的整数转换成位数组(16个数据)
|
|
|
//输入:无符号的整数usValue
|
|
|
//返回值:含16个数据的一维数组
|
|
|
extern void UnsignedShort2BitArray(int *pBitArray, const unsigned short usValue);
|
|
|
|
|
|
//功能:GPS UTC时间转换成北京时间
|
|
|
//输入:GPS UTC时间utcTime
|
|
|
//返回值:北京时间
|
|
|
extern CString GPSUTCTime2BeijingTime(const double utcTime);
|
|
|
|
|
|
|
|
|
//获得航线文件名,输入航线号(1、2、3、4、5)
|
|
|
extern CString GetFlyLineName( const int lineID );
|
|
|
//获取航线文件夹名字
|
|
|
extern CString GetFlyLineDirName( const int lineID );
|
|
|
|
|
|
//获取文件路径字符串
|
|
|
extern CString ExtractDirPath(CString strFullPath);
|
|
|
//获取文件名字字符串
|
|
|
extern CString ExtractFileName(CString strFullPath,bool bIncludeType=true);
|
|
|
//获取文件类型
|
|
|
extern CString ExtractFileType(CString strFullPath);
|
|
|
|
|
|
|
|
|
const int LINEPTNUM = 256;
|
|
|
|
|
|
|
|
|
//可视域分析相关变量
|
|
|
/************************************************************************/
|
|
|
|
|
|
struct structPoint
|
|
|
{
|
|
|
double lon;
|
|
|
double lat;
|
|
|
};
|
|
|
|
|
|
extern structPoint g_structPointVisible[360];
|
|
|
extern structPoint g_structPointNotVisible[722];
|
|
|
|
|
|
extern structPoint g_structPointVisiReal[180];
|
|
|
extern structPoint g_structPointNotVisiReal[180];
|
|
|
|
|
|
extern structPoint g_structPointCrashReal[360];
|
|
|
|
|
|
extern long m_longGroundID; //地面站标绘图层
|
|
|
|
|
|
extern long m_visbleCircleLayerID; //可视区域图层
|
|
|
extern long m_notVisibleCircleLayerID; //不可视区域图层
|
|
|
|
|
|
extern long m_visiRealCircleLayerID; //实时可视区域图层
|
|
|
extern long m_notVisiRealCircleLayerID; //实时不可视区域图层
|
|
|
extern long m_RealCircleLayerID; //实时圆图层
|
|
|
|
|
|
extern long m_longContourLineID[20]; //通视等高线图层 每500米一条 500 1000 1500 2000 2500 .... 10000
|
|
|
extern long m_longContourTextID[20]; //通视等高线标签图层
|
|
|
|
|
|
extern bool g_bSelectDropPoint; //可视域分析对话框是否在选点
|
|
|
extern long m_longSelectLineID; //地面站与目标点连线图层
|
|
|
extern long m_longLabelPlotID; //地面站与目标点连线标注图层
|
|
|
|
|
|
extern long m_longLinePointID; //航线上的点标绘图层
|
|
|
|
|
|
extern long m_crashAreaLayerID; //实时碰撞检测区域图层
|
|
|
|
|
|
extern long m_fightRegionLayerID; //作用范围图层
|
|
|
|
|
|
extern long m_DemRegionLayerID[500]; //高程数据图层
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
|
|
//多点高程分析相关变量
|
|
|
/************************************************************************/
|
|
|
extern bool g_bDemAnalysising; //是否在高程分析中
|
|
|
|
|
|
extern int g_iDemPointNum; //参与高程分析的点数
|
|
|
|
|
|
//限制参与高程分析的点数
|
|
|
const int g_iDemAltPtNum = 10;
|
|
|
|
|
|
extern double g_dDemPtLon[g_iDemAltPtNum];
|
|
|
extern double g_dDemPtLat[g_iDemAltPtNum];
|
|
|
|
|
|
//两点所连线段图层
|
|
|
extern long g_lDemAltLayerID[g_iDemAltPtNum];
|
|
|
|
|
|
//两点所连线段标注距离方位图层
|
|
|
extern long g_lDemAltDisLayerID[g_iDemAltPtNum];
|
|
|
|
|
|
//点序号的标注图层
|
|
|
extern long g_lDemPtNumLayerID[g_iDemAltPtNum];
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
|
|
/*-------------------------------------------------------------------------------------------------------------
|
|
|
说明:标记点相关变量
|
|
|
-------------------------------------------------------------------------------------------------------------*/
|
|
|
//是否在移动鼠标选择标记点
|
|
|
extern bool g_bSelectMarker;
|
|
|
|
|
|
//最大支持的标记点数
|
|
|
const int g_iMarkerPtNum = 120;
|
|
|
|
|
|
//标记点图层
|
|
|
extern long g_lMarkerLayerID[g_iMarkerPtNum];
|
|
|
|
|
|
//已经标记的点数
|
|
|
extern int g_iHaveMarkedPts;
|
|
|
|
|
|
extern CString g_iMarkerName[g_iMarkerPtNum];
|
|
|
extern double g_iMarkerLon[g_iMarkerPtNum];
|
|
|
extern double g_iMarkerLat[g_iMarkerPtNum];
|
|
|
extern bool g_bMarkerPlot[g_iMarkerPtNum];
|
|
|
|
|
|
/*-------------------------------------------------------------------------------------------------------------
|
|
|
说明:不同型号变量,用于控制是否启用个性功能
|
|
|
-------------------------------------------------------------------------------------------------------------*/
|
|
|
extern bool g_b981ADesktop; // 981A电脑端
|
|
|
extern bool g_b981APad; // 981A平板端
|
|
|
extern bool g_b981CDesktop; // 981C电脑端
|
|
|
extern bool g_b981AMulti; // 981A多机
|
|
|
|
|
|
extern CString mapVersion[3];
|
|
|
|
|
|
#endif |