ITS00MAPF.h 14 KB

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