ITS00MAPF.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  1. //---------------------------------------------------------------------------
  2. #ifndef ITS00MAPFH
  3. #define ITS00MAPFH
  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 "ShockwaveEx.hpp"
  26. #include "ShockwaveFlashObjects_TLB.hpp"
  27. #include <OleCtrls.hpp>
  28. #include "cxCheckBox.hpp"
  29. #include "cxContainer.hpp"
  30. #include "cxControls.hpp"
  31. #include "cxEdit.hpp"
  32. #include "cxGraphics.hpp"
  33. #include "cxGroupBox.hpp"
  34. #include "cxLabel.hpp"
  35. #include "cxLookAndFeelPainters.hpp"
  36. #include "cxLookAndFeels.hpp"
  37. #include "cxMaskEdit.hpp"
  38. #include "cxProgressBar.hpp"
  39. #include "cxSpinEdit.hpp"
  40. #include "cxTextEdit.hpp"
  41. #include "dxGDIPlusClasses.hpp"
  42. #include "dxSkinBlack.hpp"
  43. #include "dxSkinBlue.hpp"
  44. #include "dxSkinsCore.hpp"
  45. //---------------------------------------------------------------------------
  46. /*
  47. ******************************************************************************
  48. * Define constant
  49. ******************************************************************************
  50. */
  51. /*
  52. * 소통정보 레이어 최대갯수
  53. */
  54. #define MAX_LAYERS 7
  55. /*
  56. * 이전/다음 구현을 위한 구조체 선언(정적 이중링크로 구현)
  57. */
  58. #define D_EXT_QUEUE_SIZE 256 //512//1024/2048
  59. #define D_EXT_QUEUE_MASK (D_EXT_QUEUE_SIZE-1)
  60. /*
  61. * 레이어 Extent 정보
  62. */
  63. enum TXiMapOperation { Nothing, OnZoomIn, OnZoomOut, OnPanSt, OnDistance, OnSelect, OnGeoQuery, OnEditting, OnCircle, OnShortPath, OnArea, OnInsert, OnFindEvent, OnNearFind, OnUserDefine };
  64. struct TLinkTrfGrd
  65. {
  66. public:
  67. Graphics::TColor SpdCOLOR;
  68. int MinSpeed;
  69. int MaxSpeed;
  70. };
  71. struct TDBLinkColor
  72. {
  73. public:
  74. TLinkTrfGrd GDLOW;
  75. TLinkTrfGrd GDMID;
  76. TLinkTrfGrd GDHIG;
  77. };
  78. struct TUTISLinkGrade
  79. {
  80. public:
  81. TDBLinkColor road101;
  82. TDBLinkColor road102;
  83. TDBLinkColor road103;
  84. TDBLinkColor road104;
  85. TDBLinkColor road105;
  86. TDBLinkColor road106;
  87. TDBLinkColor road107;
  88. };
  89. struct TDDPoint
  90. {
  91. public:
  92. double X;
  93. double Y;
  94. };
  95. struct TDDRect
  96. {
  97. union
  98. {
  99. struct
  100. {
  101. TDDPoint MinXY;
  102. TDDPoint MaxXY;
  103. };
  104. struct
  105. {
  106. double MinX;
  107. double MinY;
  108. double MaxX;
  109. double MaxY;
  110. };
  111. };
  112. };
  113. typedef struct
  114. {
  115. bool bExtent;
  116. short userIdx;
  117. short currIdx;
  118. TDDRect extent[D_EXT_QUEUE_SIZE+1];
  119. } EXTENT_LIST_QUEUE;
  120. //---------------------------------------------------------------------------
  121. class TITS00MAP : public TForm
  122. {
  123. __published: // IDE-managed Components
  124. TImageList *ilstRSE;
  125. TImageList *ImgGis;
  126. TImageList *ilstTurnInfo;
  127. TImageList *ilstCCTV;
  128. TImageList *ilstObe;
  129. TImageList *ilstIncident;
  130. TTimer *TmrShow;
  131. TPanel *PnlProgress;
  132. TcxProgressBar *PbLoadMap;
  133. TPanel *Panel5;
  134. TImage *ImgBoundary_n;
  135. TImage *ImgPrint_n;
  136. TImage *ImgPrint_c;
  137. TImage *ImgRefresh_c;
  138. TImage *ImgRefresh_n;
  139. TImage *ImgFull_n;
  140. TImage *ImgFull_c;
  141. TImage *ImgSquare_c;
  142. TImage *ImgSquare_n;
  143. TImage *ImgBoundary_c;
  144. TImage *ImgNext_c;
  145. TImage *ImgNext_n;
  146. TImage *ImgPan_n;
  147. TImage *ImgPan_c;
  148. TImage *ImgZoomOut_c;
  149. TImage *ImgZoomOut_n;
  150. TImage *ImgStnd_c;
  151. TImage *ImgSave_n;
  152. TImage *ImgSave_c;
  153. TImage *ImgStnd_n;
  154. TImage *ImgDist_c;
  155. TImage *ImgCircle_n;
  156. TImage *ImgCircle_c;
  157. TImage *ImgDist_n;
  158. TImage *ImgSel_c;
  159. TImage *ImgSel_n;
  160. TImage *ImgPrev_n;
  161. TImage *ImgPrev_c;
  162. TImage *ImgCenter_c;
  163. TImage *ImgCenter_n;
  164. TImage *ImgZoomIn_c;
  165. TImage *ImgZoomIn_n;
  166. TImageBtn *ImgBoundary;
  167. TImageBtn *ImgPrint;
  168. TImageBtn *ImgDist;
  169. TImageBtn *ImgSquare;
  170. TImageBtn *ImgCircle;
  171. TImageBtn *ImgSave;
  172. TImage *ImgSelect_old;
  173. TTimer *TmrSelect;
  174. TTimer *TmrLinkSelect;
  175. TImage *ImgSelect;
  176. TPanel *PnlToolBar;
  177. TGroupBox *GroupBox1;
  178. TImageBtn *ImgPan;
  179. TImageBtn *ImgZoomIn;
  180. TImageBtn *ImgZoomOut;
  181. TImageBtn *ImgSel;
  182. TImageBtn *ImgCenter;
  183. TImageBtn *ImgPrev;
  184. TImageBtn *ImgNext;
  185. TImageBtn *ImgFull;
  186. TImageBtn *ImgStnd;
  187. TImageBtn *ImgRefresh;
  188. TGroupBox *GroupBox2;
  189. TGroupBox *GrpFacility;
  190. TcxCheckBox *ChkDrawCtv;
  191. TcxCheckBox *ChkDrawVms;
  192. TcxCheckBox *ChkViewExample;
  193. TcxCheckBox *ChkTrafficLayer;
  194. TcxCheckBox *ChkDrawIncident;
  195. TcxCheckBox *ChkGisSearch;
  196. TcxCheckBox *ChkToolTip;
  197. TGroupBox *GrpPos;
  198. TLabel *Label11;
  199. TLabel *Label12;
  200. TcxSpinEdit *SePosY;
  201. TcxSpinEdit *SePosX;
  202. TcxCheckBox *ChkDrawCenter;
  203. TcxGroupBox *panRemark;
  204. TGroupBox *GrpRse;
  205. TGroupBox *GroupBox7;
  206. TGroupBox *GroupBox8;
  207. TGroupBox *GroupBox9;
  208. TGroupBox *GroupBox10;
  209. TImage *ImgRseN;
  210. TImage *ImgRseC;
  211. TcxLabel *cxLabel1;
  212. TcxLabel *cxLabel2;
  213. TImage *ImgCctvN;
  214. TImage *ImgCctvC;
  215. TImage *ImgCctvM;
  216. TcxLabel *cxLabel3;
  217. TcxLabel *cxLabel4;
  218. TcxLabel *cxLabel5;
  219. TImage *ImgVmsN;
  220. TImage *ImgVmsC;
  221. TImage *ImgVmsM;
  222. TcxLabel *cxLabel6;
  223. TcxLabel *cxLabel7;
  224. TcxLabel *cxLabel8;
  225. TImage *ImgInc01;
  226. TImage *ImgInc02;
  227. TImage *ImgInc03;
  228. TImage *ImgInc04;
  229. TcxLabel *cxLabel9;
  230. TcxLabel *cxLabel10;
  231. TcxLabel *cxLabel11;
  232. TcxLabel *cxLabel12;
  233. TPanel *PnlTrf01;
  234. TPanel *PnlTrf02;
  235. TPanel *PnlTrf03;
  236. TPanel *PnlTrf00;
  237. TcxLabel *cxLabel13;
  238. TcxLabel *cxLabel14;
  239. TcxLabel *cxLabel15;
  240. TcxLabel *cxLabel16;
  241. TImage *ImgOffice;
  242. TImage *ImgTemp;
  243. TImage *ImgTurn001;
  244. TImage *ImgTurn002;
  245. TImage *ImgTurn003;
  246. TImage *ImgTurn011;
  247. TImage *ImgTurn012;
  248. TImage *ImgTurn101;
  249. TImage *ImgTurn102;
  250. TImage *ImgTurn103;
  251. TPopupMenu *pmuGis;
  252. TMenuItem *N1;
  253. TMenuItem *pmuGisDefault;
  254. TMenuItem *pmuMove;
  255. TMenuItem *pmuZoomIn;
  256. TMenuItem *pmuZoomOut;
  257. TMenuItem *pmuIconSel;
  258. TMenuItem *pmuMoveCenter;
  259. TMenuItem *N2;
  260. TMenuItem *pmuCalLen;
  261. TMenuItem *pmuCalArea;
  262. TMenuItem *pmuRadius;
  263. TMenuItem *N7;
  264. TMenuItem *MnuSetStdArea;
  265. TMenuItem *MnuMoveStdArea;
  266. TPopupMenu *pmuCctv;
  267. TMenuItem *MnuCctvId;
  268. TMenuItem *N6;
  269. TMenuItem *mnuStopImage;
  270. TMenuItem *mnuCctvCam;
  271. TMenuItem *mnuCctvPingCtrl;
  272. TPopupMenu *pmuVms;
  273. TMenuItem *mnuVmsMsg;
  274. TMenuItem *mnuVmsCam;
  275. TMenuItem *mnuVmsPingCtrl;
  276. TPopupMenu *pmuRse;
  277. TMenuItem *pmuRsePing;
  278. TPanel *PnlMapInfo;
  279. TImage *ImgDesc27;
  280. TImage *ImgDesc37;
  281. TLabel *Label16;
  282. TLabel *Label3;
  283. TLabel *LblZoomLevel;
  284. TLabel *LblLinkLevel;
  285. TImageList *ImgFacility2;
  286. TImage *Image1;
  287. TcxLabel *cxLabel17;
  288. TMenuItem *MnuVmsId;
  289. TMenuItem *N3;
  290. TMenuItem *MnuRseId;
  291. TMenuItem *N4;
  292. TMenuItem *NetworkPing1;
  293. TMenuItem *mnuCctvPingCapt;
  294. TMenuItem *mnuCctvPingEncd;
  295. TMenuItem *mnuCctvPingStrm;
  296. TMenuItem *NetworkPing2;
  297. TMenuItem *mnuVmsPingWeb;
  298. TGroupBox *GroupBox4;
  299. TImage *ImgCurrent;
  300. TcxLabel *LblCurrTemp;
  301. TGroupBox *GroupBox5;
  302. TImage *ImgForecast;
  303. TcxLabel *LblMaxFore;
  304. TcxLabel *LblMinFore;
  305. TcxCheckBox *ChkDrawVds;
  306. TcxCheckBox *ChkDrawAvi;
  307. TcxCheckBox *ChkDrawDsrc;
  308. TImageList *ImgGisBackup;
  309. TGroupBox *GrpWeb;
  310. TImage *Image2;
  311. TImage *Image3;
  312. TImage *Image4;
  313. TcxLabel *cxLabel18;
  314. TcxLabel *cxLabel19;
  315. TcxLabel *cxLabel20;
  316. TGroupBox *GrpDsrc;
  317. TImage *Image5;
  318. TImage *Image6;
  319. TImage *Image7;
  320. TcxLabel *cxLabel21;
  321. TcxLabel *cxLabel22;
  322. TcxLabel *cxLabel23;
  323. TGroupBox *GrpAvi;
  324. TImage *Image8;
  325. TImage *Image9;
  326. TImage *Image10;
  327. TcxLabel *cxLabel24;
  328. TcxLabel *cxLabel25;
  329. TcxLabel *cxLabel26;
  330. TGroupBox *GrpVds;
  331. TImage *Image11;
  332. TImage *Image12;
  333. TImage *Image13;
  334. TcxLabel *cxLabel27;
  335. TcxLabel *cxLabel28;
  336. TcxLabel *cxLabel29;
  337. TPopupMenu *pmuWebCam;
  338. TMenuItem *MnuWebCamId;
  339. TMenuItem *MenuItem2;
  340. TMenuItem *MnuWebCam;
  341. TMenuItem *MenuItem5;
  342. TMenuItem *MnuWebCamPing;
  343. TPopupMenu *pmuVds;
  344. TMenuItem *MnuVdsId;
  345. TMenuItem *MenuItem3;
  346. TMenuItem *MenuItem4;
  347. TPopupMenu *pmuAvi;
  348. TMenuItem *MnuAviId;
  349. TMenuItem *MenuItem7;
  350. TMenuItem *MenuItem8;
  351. TPopupMenu *pmuDsrc;
  352. TMenuItem *MnuDsrcId;
  353. TMenuItem *MenuItem10;
  354. TMenuItem *MenuItem11;
  355. TcxLabel *LblTraffic;
  356. TTimer *TmrLblTraffic;
  357. TPanel *Panel2;
  358. TShockwaveFlashEx *ShockwaveFlash1;
  359. TMemo *Memo1;
  360. TTimer *TmrRefresh;
  361. TcxCheckBox *ChkDrawPark;
  362. TPopupMenu *pmuSigDet;
  363. TMenuItem *MnuSigDetId;
  364. TMenuItem *MenuItem19;
  365. TMenuItem *mmuSigDetPing;
  366. TPopupMenu *pmuSig;
  367. TMenuItem *MnuSigId;
  368. TMenuItem *MenuItem20;
  369. TMenuItem *mmuSigPing;
  370. TPopupMenu *pmuBit;
  371. TMenuItem *MnuBitId;
  372. TMenuItem *MenuItem6;
  373. TMenuItem *mmuBitPing;
  374. TPopupMenu *pmuPis;
  375. TMenuItem *MnuPisId;
  376. TMenuItem *MenuItem13;
  377. TMenuItem *MenuItem21;
  378. TPopupMenu *pmuPcs;
  379. TMenuItem *MnuPcsId;
  380. TMenuItem *MenuItem26;
  381. TMenuItem *MenuItem27;
  382. TPanel *Panel1;
  383. TcxCheckBox *ChkDrawBit;
  384. TcxCheckBox *ChkDrawSig;
  385. TcxCheckBox *ChkDrawPcs;
  386. TcxCheckBox *ChkDrawPis;
  387. TcxCheckBox *ChkDrawSigDet;
  388. TPopupMenu *pmuPark;
  389. TMenuItem *MnuParkId;
  390. TMenuItem *MenuItem1;
  391. TMenuItem *mnuParkMsg;
  392. TMenuItem *MenuItem9;
  393. TMenuItem *MenuItem14;
  394. TcxCheckBox *ChkDrawEvent;
  395. TPopupMenu *pmuEvent;
  396. TMenuItem *MenuEventId;
  397. TMenuItem *MenuItem15;
  398. TMenuItem *mnuViewEventCam;
  399. TcxCheckBox *ChkWebCam;
  400. TcxCheckBox *ChkDrawRse;
  401. TcxCheckBox *ChkDrawWthr;
  402. void __fastcall FormDestroy(TObject *Sender);
  403. void __fastcall FormShow(TObject *Sender);
  404. void __fastcall TmrShowTimer(TObject *Sender);
  405. void __fastcall pmuGisCalcClick(TObject *Sender);
  406. void __fastcall pmuControlGisClick(TObject *Sender);
  407. void __fastcall ImgPrevClick(TObject *Sender);
  408. void __fastcall ImgNextClick(TObject *Sender);
  409. void __fastcall ImgFullClick(TObject *Sender);
  410. void __fastcall ImgStndClick(TObject *Sender);
  411. void __fastcall ImgRefreshClick(TObject *Sender);
  412. void __fastcall ChkTrafficLayerClick(TObject *Sender);
  413. void __fastcall ChkDrawGisClick(TObject *Sender);
  414. void __fastcall TmrSelectTimer(TObject *Sender);
  415. void __fastcall TmrLinkSelectTimer(TObject *Sender);
  416. void __fastcall MnuSetStdAreaClick(TObject *Sender);
  417. void __fastcall MnuMoveStdAreaClick(TObject *Sender);
  418. void __fastcall mnuStopImageClick(TObject *Sender);
  419. void __fastcall mnuFacilityPingClick(TObject *Sender);
  420. void __fastcall pmuFacilityPopup(TObject *Sender);
  421. void __fastcall mnuCctvCamClick(TObject *Sender);
  422. void __fastcall mnuVmsMsgClick(TObject *Sender);
  423. void __fastcall mnuVmsCamClick(TObject *Sender);
  424. void __fastcall ChkGisSearchClick(TObject *Sender);
  425. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  426. void __fastcall panRemarkMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
  427. void __fastcall ChkViewExamplePropertiesChange(TObject *Sender);
  428. void __fastcall MnuWebCamClick(TObject *Sender);
  429. void __fastcall TmrLblTrafficTimer(TObject *Sender);
  430. void __fastcall FormResize(TObject *Sender);
  431. void __fastcall ShockwaveFlash1FlashCall(TObject *ASender, const WideString request);
  432. void __fastcall PnlToolBarDblClick(TObject *Sender);
  433. void __fastcall TmrRefreshTimer(TObject *Sender);
  434. void __fastcall mnuParkMsgClick(TObject *Sender);
  435. void __fastcall mnuViewEventCamClick(TObject *Sender);
  436. private: // User declarations
  437. public:
  438. bool MapInit;
  439. bool MapStart;
  440. bool ModeSelect;
  441. // For Map
  442. int m_nMapLevel;
  443. //마우스 제어 플래그
  444. TPoint m_ptDown;
  445. bool m_bMouseDown;
  446. bool m_bMoveCenter;
  447. bool m_bCalcMode;
  448. bool m_bCalcCont;
  449. public:
  450. /*
  451. * 지도 이전/이후 보기 핸들러, 전자지도엔진에서 함수지원은 하나 기능이 수행안됨
  452. */
  453. EXTENT_LIST_QUEUE m_ExtQ; // 이전/다음 정보를 저장할 전역변수
  454. TDDRect m_PrevExt;
  455. bool __fastcall PrevExtentQ();
  456. bool __fastcall NextExtentQ();
  457. bool __fastcall AddExtentQ(TDDRect &curRc);
  458. void __fastcall SetExtent(TDDRect &curRc);
  459. public: // User declarations
  460. __fastcall TITS00MAP(TComponent* Owner, TForm *ParentForm);
  461. void __fastcall ShowLayerEditForm();
  462. void __fastcall LoadConfig();
  463. void __fastcall LoadImageFile(String sImgFile, TImage *pImage);
  464. void __fastcall LoadLocalSkin();
  465. void __fastcall CommClose();
  466. bool __fastcall FormInit();
  467. void __fastcall LoadGisMap();
  468. void __fastcall GetGisTrafficColor(TUTISLinkGrade &pUtisLinkColor);
  469. void __fastcall SetGisTrafficColor();
  470. void __fastcall SetMapOperation(TXiMapOperation nMapOper);
  471. void __fastcall GisMenuCheckClear();
  472. void __fastcall RefreshMapTraffic();
  473. // Object Select
  474. TDDPoint m_ptSelect;
  475. void __fastcall SelectObjectByPos(double dPosX, double dPosY, bool bArrow=false);
  476. void __fastcall RefreshGisLink();
  477. bool __fastcall SelectLinkById(int ALinkLevel, String sId, bool bHide=false);
  478. void __fastcall ShowCctvStopImage(String AId, TPoint pt);
  479. void __fastcall ShowCctvCamera(String AId, TPoint pt);
  480. void __fastcall ShowVmsMessage(String AId, TPoint pt);
  481. void __fastcall ShowVmsCamera(String AId, TPoint pt);
  482. void __fastcall ShowWebCamera(String AId, TPoint pt);
  483. void __fastcall ShowParkMessage(String AId, TPoint pt);
  484. void __fastcall ShowLinkDetailInfo(String sLinkId, int nLinkLevel);
  485. void __fastcall UpdateFacilityStatus();
  486. void __fastcall UpdateIncidentStatus();
  487. void __fastcall UpdateEventStatus(); //남양주 블랙박스 이벤트 상태
  488. String FSelId;
  489. void __fastcall LoadMap();
  490. void __fastcall ShowHideFacility();
  491. void __fastcall OnMapPopupMenu(String AType, String AId, String APosX, String APosY, String AInfo);
  492. void __fastcall SelGisItem(int AType, String AId);
  493. };
  494. //---------------------------------------------------------------------------
  495. extern PACKAGE TITS00MAP *ITS00MAP;
  496. //---------------------------------------------------------------------------
  497. #endif