VMS00MAPF.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. //---------------------------------------------------------------------------
  2. #ifndef VMS00MAPFH
  3. #define VMS00MAPFH
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <Controls.hpp>
  7. #include <StdCtrls.hpp>
  8. #include <Forms.hpp>
  9. #include <DB.hpp>
  10. #include <DBClient.hpp>
  11. #include <Provider.hpp>
  12. #include <ADODB.hpp>
  13. #include <ExtCtrls.hpp>
  14. #include <Graphics.hpp>
  15. #include <ImgList.hpp>
  16. #include <Menus.hpp>
  17. #include <pngimage.hpp>
  18. #include <map.h>
  19. #include <vector.h>
  20. #include "ImageBtn.h"
  21. //---------------------------------------------------------------------------
  22. //---------------------------------------------------------------------------
  23. #include "DataTypesF.h"
  24. #include "WindowMsgF.h"
  25. #include "cxCheckBox.hpp"
  26. #include "cxContainer.hpp"
  27. #include "cxControls.hpp"
  28. #include "cxEdit.hpp"
  29. #include "cxGraphics.hpp"
  30. #include "cxGroupBox.hpp"
  31. #include "cxLabel.hpp"
  32. #include "cxLookAndFeelPainters.hpp"
  33. #include "cxLookAndFeels.hpp"
  34. #include "cxMaskEdit.hpp"
  35. #include "cxProgressBar.hpp"
  36. #include "cxSpinEdit.hpp"
  37. #include "cxTextEdit.hpp"
  38. #include "dxGDIPlusClasses.hpp"
  39. #include "dxSkinBlack.hpp"
  40. #include "dxSkinBlue.hpp"
  41. #include "dxSkinCaramel.hpp"
  42. #include "dxSkinCoffee.hpp"
  43. #include "dxSkinDarkRoom.hpp"
  44. #include "dxSkinDarkSide.hpp"
  45. #include "dxSkinFoggy.hpp"
  46. #include "dxSkinGlassOceans.hpp"
  47. #include "dxSkiniMaginary.hpp"
  48. #include "dxSkinLilian.hpp"
  49. #include "dxSkinLiquidSky.hpp"
  50. #include "dxSkinLondonLiquidSky.hpp"
  51. #include "dxSkinMcSkin.hpp"
  52. #include "dxSkinMoneyTwins.hpp"
  53. #include "dxSkinOffice2007Black.hpp"
  54. #include "dxSkinOffice2007Blue.hpp"
  55. #include "dxSkinOffice2007Green.hpp"
  56. #include "dxSkinOffice2007Pink.hpp"
  57. #include "dxSkinOffice2007Silver.hpp"
  58. #include "dxSkinOffice2010Black.hpp"
  59. #include "dxSkinOffice2010Blue.hpp"
  60. #include "dxSkinOffice2010Silver.hpp"
  61. #include "dxSkinsCore.hpp"
  62. #include "dxSkinSeven.hpp"
  63. #include "dxSkinSharp.hpp"
  64. #include "dxSkinSilver.hpp"
  65. #include "dxSkinStardust.hpp"
  66. #include "ShockwaveEx.hpp"
  67. #include "ShockwaveFlashObjects_TLB.hpp"
  68. #include <OleCtrls.hpp>
  69. //---------------------------------------------------------------------------
  70. /*
  71. ******************************************************************************
  72. * Define constant
  73. ******************************************************************************
  74. */
  75. /*
  76. * 이전/다음 구현을 위한 구조체 선언(정적 이중링크로 구현)
  77. */
  78. #define D_EXT_QUEUE_SIZE 256 //512//1024/2048
  79. #define D_EXT_QUEUE_MASK (D_EXT_QUEUE_SIZE-1)
  80. /*
  81. * 레이어 Extent 정보
  82. */
  83. enum TXiMapOperation { Nothing, OnZoomIn, OnZoomOut, OnPanSt, OnDistance, OnSelect, OnGeoQuery, OnEditting, OnCircle, OnShortPath, OnArea, OnInsert, OnFindEvent, OnNearFind, OnUserDefine };
  84. struct TLinkTrfGrd
  85. {
  86. public:
  87. Graphics::TColor SpdCOLOR;
  88. int MinSpeed;
  89. int MaxSpeed;
  90. };
  91. struct TDBLinkColor
  92. {
  93. public:
  94. TLinkTrfGrd GDLOW;
  95. TLinkTrfGrd GDMID;
  96. TLinkTrfGrd GDHIG;
  97. };
  98. struct TUTISLinkGrade
  99. {
  100. public:
  101. TDBLinkColor road101;
  102. TDBLinkColor road102;
  103. TDBLinkColor road103;
  104. TDBLinkColor road104;
  105. TDBLinkColor road105;
  106. TDBLinkColor road106;
  107. TDBLinkColor road107;
  108. };
  109. struct TDDPoint
  110. {
  111. public:
  112. double X;
  113. double Y;
  114. };
  115. struct TDDRect
  116. {
  117. union
  118. {
  119. struct
  120. {
  121. TDDPoint MinXY;
  122. TDDPoint MaxXY;
  123. };
  124. struct
  125. {
  126. double MinX;
  127. double MinY;
  128. double MaxX;
  129. double MaxY;
  130. };
  131. };
  132. };
  133. typedef struct
  134. {
  135. bool bExtent;
  136. short userIdx;
  137. short currIdx;
  138. TDDRect extent[D_EXT_QUEUE_SIZE+1];
  139. } EXTENT_LIST_QUEUE;
  140. //---------------------------------------------------------------------------
  141. class TVMS00MAP : public TForm
  142. {
  143. __published: // IDE-managed Components
  144. TTimer *TmrShow;
  145. TPanel *PnlProgress;
  146. TcxProgressBar *PbLoadMap;
  147. TPanel *Panel5;
  148. TImage *ImgBoundary_n;
  149. TImage *ImgPrint_n;
  150. TImage *ImgPrint_c;
  151. TImage *ImgRefresh_c;
  152. TImage *ImgRefresh_n;
  153. TImage *ImgFull_n;
  154. TImage *ImgFull_c;
  155. TImage *ImgSquare_c;
  156. TImage *ImgSquare_n;
  157. TImage *ImgBoundary_c;
  158. TImage *ImgNext_c;
  159. TImage *ImgNext_n;
  160. TImage *ImgPan_n;
  161. TImage *ImgPan_c;
  162. TImage *ImgZoomOut_c;
  163. TImage *ImgZoomOut_n;
  164. TImage *ImgStnd_c;
  165. TImage *ImgSave_n;
  166. TImage *ImgSave_c;
  167. TImage *ImgStnd_n;
  168. TImage *ImgDist_c;
  169. TImage *ImgCircle_n;
  170. TImage *ImgCircle_c;
  171. TImage *ImgDist_n;
  172. TImage *ImgSel_c;
  173. TImage *ImgSel_n;
  174. TImage *ImgPrev_n;
  175. TImage *ImgPrev_c;
  176. TImage *ImgCenter_c;
  177. TImage *ImgCenter_n;
  178. TImage *ImgZoomIn_c;
  179. TImage *ImgZoomIn_n;
  180. TImageBtn *ImgBoundary;
  181. TImageBtn *ImgPrint;
  182. TImageBtn *ImgDist;
  183. TImageBtn *ImgSquare;
  184. TImageBtn *ImgCircle;
  185. TImageBtn *ImgSave;
  186. TImage *ImgSelect_old;
  187. TTimer *TmrSelect;
  188. TTimer *TmrLinkSelect;
  189. TImage *ImgSelect;
  190. TPanel *PnlToolBar;
  191. TGroupBox *GroupBox1;
  192. TImageBtn *ImgPan;
  193. TImageBtn *ImgZoomIn;
  194. TImageBtn *ImgZoomOut;
  195. TImageBtn *ImgSel;
  196. TImageBtn *ImgCenter;
  197. TImageBtn *ImgPrev;
  198. TImageBtn *ImgNext;
  199. TImageBtn *ImgFull;
  200. TImageBtn *ImgStnd;
  201. TImageBtn *ImgRefresh;
  202. TGroupBox *GroupBox2;
  203. TcxCheckBox *ChkViewExample;
  204. TcxCheckBox *ChkTrafficLayer;
  205. TcxCheckBox *ChkGisSearch;
  206. TcxCheckBox *ChkToolTip;
  207. TGroupBox *GrpPos;
  208. TLabel *Label11;
  209. TLabel *Label12;
  210. TcxSpinEdit *SePosY;
  211. TcxSpinEdit *SePosX;
  212. TcxGroupBox *panRemark;
  213. TGroupBox *GroupBox8;
  214. TGroupBox *GroupBox10;
  215. TcxLabel *cxLabel6;
  216. TcxLabel *cxLabel7;
  217. TcxLabel *cxLabel8;
  218. TPanel *PnlTrf01;
  219. TPanel *PnlTrf02;
  220. TPanel *PnlTrf03;
  221. TPanel *PnlTrf00;
  222. TcxLabel *cxLabel13;
  223. TcxLabel *cxLabel14;
  224. TcxLabel *cxLabel15;
  225. TcxLabel *cxLabel16;
  226. TImage *ImgOffice;
  227. TImage *ImgTemp;
  228. TImage *ImgTurn001;
  229. TImage *ImgTurn002;
  230. TImage *ImgTurn003;
  231. TImage *ImgTurn011;
  232. TImage *ImgTurn012;
  233. TImage *ImgTurn101;
  234. TImage *ImgTurn102;
  235. TImage *ImgTurn103;
  236. TPopupMenu *pmuVms;
  237. TMenuItem *mnuVmsMsg;
  238. TMenuItem *mnuVmsCam;
  239. TMenuItem *mnuVmsPingCtrl;
  240. TPanel *PnlMapInfo;
  241. TImage *ImgDesc27;
  242. TImage *ImgDesc37;
  243. TLabel *Label16;
  244. TLabel *Label3;
  245. TLabel *LblZoomLevel;
  246. TLabel *LblLinkLevel;
  247. TMenuItem *MnuVmsId;
  248. TMenuItem *N3;
  249. TMenuItem *NetworkPing2;
  250. TMenuItem *mnuVmsPingWeb;
  251. TGroupBox *GroupBox4;
  252. TImage *ImgCurrent;
  253. TcxLabel *LblCurrTemp;
  254. TGroupBox *GroupBox5;
  255. TImage *ImgForecast;
  256. TcxLabel *LblMaxFore;
  257. TcxLabel *LblMinFore;
  258. TcxLabel *LblTraffic;
  259. TTimer *TmrLblTraffic;
  260. TPanel *Panel2;
  261. TShockwaveFlashEx *ShockwaveFlash1;
  262. TMemo *Memo1;
  263. TTimer *TmrRefresh;
  264. TPopupMenu *pmuGis;
  265. TMenuItem *N1;
  266. TMenuItem *pmuGisDefault;
  267. TMenuItem *pmuMove;
  268. TMenuItem *pmuZoomIn;
  269. TMenuItem *pmuZoomOut;
  270. TMenuItem *pmuIconSel;
  271. TMenuItem *pmuMoveCenter;
  272. TMenuItem *N2;
  273. TMenuItem *pmuCalLen;
  274. TMenuItem *pmuCalArea;
  275. TMenuItem *pmuRadius;
  276. TMenuItem *N7;
  277. TMenuItem *MnuSetStdArea;
  278. TMenuItem *MnuMoveStdArea;
  279. TcxCheckBox *ChkDrawIncident;
  280. TcxCheckBox *ChkDrawVms;
  281. TImage *ImgVmsN;
  282. TImage *ImgVmsC;
  283. TImage *ImgVmsM;
  284. TGroupBox *GroupBox3;
  285. TPanel *Pnl01;
  286. TPanel *Pnl02;
  287. TPanel *Pnl03;
  288. TPanel *Pnl00;
  289. TcxLabel *cxLabel1;
  290. TcxLabel *cxLabel2;
  291. TcxLabel *cxLabel3;
  292. TcxLabel *cxLabel4;
  293. TGroupBox *GroupBox6;
  294. TImage *Image1;
  295. TImage *Image2;
  296. TImage *Image3;
  297. TcxLabel *cxLabel5;
  298. TcxLabel *cxLabel9;
  299. TcxLabel *cxLabel10;
  300. TMenuItem *mnuVmsIfsc;
  301. TcxCheckBox *ChkViewAllIfsc;
  302. void __fastcall FormDestroy(TObject *Sender);
  303. void __fastcall FormShow(TObject *Sender);
  304. void __fastcall TmrShowTimer(TObject *Sender);
  305. void __fastcall pmuControlGisClick(TObject *Sender);
  306. void __fastcall ImgPrevClick(TObject *Sender);
  307. void __fastcall ImgNextClick(TObject *Sender);
  308. void __fastcall ImgStndClick(TObject *Sender);
  309. void __fastcall ImgRefreshClick(TObject *Sender);
  310. void __fastcall ChkTrafficLayerClick(TObject *Sender);
  311. void __fastcall ChkDrawGisClick(TObject *Sender);
  312. void __fastcall TmrSelectTimer(TObject *Sender);
  313. void __fastcall TmrLinkSelectTimer(TObject *Sender);
  314. void __fastcall MnuMoveStdAreaClick(TObject *Sender);
  315. void __fastcall mnuFacilityPingClick(TObject *Sender);
  316. void __fastcall pmuFacilityPopup(TObject *Sender);
  317. void __fastcall mnuVmsMsgClick(TObject *Sender);
  318. void __fastcall mnuVmsCamClick(TObject *Sender);
  319. void __fastcall ChkGisSearchClick(TObject *Sender);
  320. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  321. void __fastcall panRemarkMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
  322. void __fastcall ChkViewExamplePropertiesChange(TObject *Sender);
  323. void __fastcall TmrLblTrafficTimer(TObject *Sender);
  324. void __fastcall FormResize(TObject *Sender);
  325. void __fastcall ShockwaveFlash1FlashCall(TObject *ASender, const WideString request);
  326. void __fastcall PnlToolBarDblClick(TObject *Sender);
  327. void __fastcall TmrRefreshTimer(TObject *Sender);
  328. void __fastcall mnuVmsIfscClick(TObject *Sender);
  329. void __fastcall ChkViewAllIfscClick(TObject *Sender);
  330. void __fastcall Memo1DblClick(TObject *Sender);
  331. private: // User declarations
  332. public:
  333. bool MapInit;
  334. bool MapStart;
  335. bool ModeSelect;
  336. // For Map
  337. int m_nMapLevel;
  338. //마우스 제어 플래그
  339. TPoint m_ptDown;
  340. bool m_bMouseDown;
  341. bool m_bMoveCenter;
  342. bool m_bCalcMode;
  343. bool m_bCalcCont;
  344. public:
  345. /*
  346. * 지도 이전/이후 보기 핸들러, 전자지도엔진에서 함수지원은 하나 기능이 수행안됨
  347. */
  348. EXTENT_LIST_QUEUE m_ExtQ; // 이전/다음 정보를 저장할 전역변수
  349. TDDRect m_PrevExt;
  350. bool __fastcall PrevExtentQ();
  351. bool __fastcall NextExtentQ();
  352. bool __fastcall AddExtentQ(TDDRect &curRc);
  353. void __fastcall SetExtent(TDDRect &curRc);
  354. public: // User declarations
  355. __fastcall TVMS00MAP(TComponent* Owner, TForm *ParentForm);
  356. void __fastcall LoadLocalSkin();
  357. void __fastcall CommClose();
  358. bool __fastcall FormInit();
  359. void __fastcall LoadGisMap();
  360. void __fastcall SetMapOperation(TXiMapOperation nMapOper);
  361. void __fastcall GisMenuCheckClear();
  362. void __fastcall RefreshMapTraffic();
  363. // Object Select
  364. TDDPoint m_ptSelect;
  365. void __fastcall SelectObjectByPos(double dPosX, double dPosY, bool bArrow=false);
  366. void __fastcall RefreshGisLink();
  367. bool __fastcall SelectLinkById(int ALinkLevel, String sId, bool bHide=false);
  368. void __fastcall ShowVmsMessage(String AId, TPoint pt);
  369. void __fastcall ShowVmsCamera(String AId, TPoint pt);
  370. void __fastcall ShowLinkDetailInfo(String sLinkId, int nLinkLevel);
  371. void __fastcall UpdateFacilityStatus();
  372. void __fastcall UpdateIncidentStatus();
  373. String FSelId;
  374. void __fastcall LoadMap();
  375. void __fastcall ShowHideFacility();
  376. void __fastcall OnMapPopupMenu(String AType, String AId, String APosX, String APosY, String AInfo);
  377. void __fastcall SelGisItem(int AType, String AId);
  378. };
  379. //---------------------------------------------------------------------------
  380. extern PACKAGE TVMS00MAP *VMS00MAP;
  381. //---------------------------------------------------------------------------
  382. #endif