ITS00MAPF.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  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 "dxSkinsCore.hpp"
  42. #include "GMClasses.hpp"
  43. #include "GMLinkedComponents.hpp"
  44. #include "GMMap.hpp"
  45. #include "GMMapVCL.hpp"
  46. #include "GMMarker.hpp"
  47. #include "GMMarkerVCL.hpp"
  48. #include "GMPolygonVCL.hpp"
  49. #include "GMPolyline.hpp"
  50. #include "GMPolylineVCL.hpp"
  51. //---------------------------------------------------------------------------
  52. /*
  53. ******************************************************************************
  54. * Define constant
  55. ******************************************************************************
  56. */
  57. /*
  58. * 소통정보 레이어 최대갯수
  59. */
  60. #define MAX_LAYERS 7
  61. /*
  62. * 이전/다음 구현을 위한 구조체 선언(정적 이중링크로 구현)
  63. */
  64. #define D_EXT_QUEUE_SIZE 256 //512//1024/2048
  65. #define D_EXT_QUEUE_MASK (D_EXT_QUEUE_SIZE-1)
  66. /*
  67. * 레이어 Extent 정보
  68. */
  69. enum TXiMapOperation { Nothing, OnZoomIn, OnZoomOut, OnPanSt, OnDistance, OnSelect, OnGeoQuery, OnEditting, OnCircle, OnShortPath, OnArea, OnInsert, OnFindEvent, OnNearFind, OnUserDefine };
  70. struct TLinkTrfGrd
  71. {
  72. public:
  73. Graphics::TColor SpdCOLOR;
  74. int MinSpeed;
  75. int MaxSpeed;
  76. };
  77. struct TDBLinkColor
  78. {
  79. public:
  80. TLinkTrfGrd GDLOW;
  81. TLinkTrfGrd GDMID;
  82. TLinkTrfGrd GDHIG;
  83. };
  84. struct TUTISLinkGrade
  85. {
  86. public:
  87. TDBLinkColor road101;
  88. TDBLinkColor road102;
  89. TDBLinkColor road103;
  90. TDBLinkColor road104;
  91. TDBLinkColor road105;
  92. TDBLinkColor road106;
  93. TDBLinkColor road107;
  94. };
  95. struct TDDPoint
  96. {
  97. public:
  98. double X;
  99. double Y;
  100. };
  101. struct TDDRect
  102. {
  103. union
  104. {
  105. struct
  106. {
  107. TDDPoint MinXY;
  108. TDDPoint MaxXY;
  109. };
  110. struct
  111. {
  112. double MinX;
  113. double MinY;
  114. double MaxX;
  115. double MaxY;
  116. };
  117. };
  118. };
  119. typedef struct
  120. {
  121. bool bExtent;
  122. short userIdx;
  123. short currIdx;
  124. TDDRect extent[D_EXT_QUEUE_SIZE+1];
  125. } EXTENT_LIST_QUEUE;
  126. typedef struct
  127. {
  128. short Zoom;
  129. double Lat;
  130. double Lng;
  131. } TGisExtent;
  132. typedef struct
  133. {
  134. bool Extent;
  135. short TotCnt;
  136. short CurIdx;
  137. TGisExtent extent[D_EXT_QUEUE_SIZE+1];
  138. } GIS_EXTENT_QUEUE;
  139. //---------------------------------------------------------------------------
  140. class TITS00MAP : public TForm
  141. {
  142. __published: // IDE-managed Components
  143. TTimer *TmrShow;
  144. TPopupMenu *pmuCctv;
  145. TMenuItem *MnuCctvId;
  146. TMenuItem *N6;
  147. TMenuItem *mnuStopImage;
  148. TMenuItem *mnuCctvCam;
  149. TMenuItem *mnuCctvPingCtrl;
  150. TPopupMenu *pmuVms;
  151. TMenuItem *mnuVmsMsg;
  152. TMenuItem *mnuVmsCam;
  153. TMenuItem *mnuVmsPingCtrl;
  154. TPopupMenu *pmuRse;
  155. TMenuItem *pmuRsePing;
  156. TMenuItem *MnuVmsId;
  157. TMenuItem *N3;
  158. TMenuItem *MnuRseId;
  159. TMenuItem *N4;
  160. TMenuItem *NetworkPing1;
  161. TMenuItem *mnuCctvPingCapt;
  162. TMenuItem *mnuCctvPingEncd;
  163. TMenuItem *mnuCctvPingStrm;
  164. TMenuItem *NetworkPing2;
  165. TMenuItem *mnuVmsPingWeb;
  166. TPopupMenu *pmuWebCam;
  167. TMenuItem *MnuWebCamId;
  168. TMenuItem *MenuItem2;
  169. TMenuItem *MnuWebCam;
  170. TMenuItem *MenuItem5;
  171. TMenuItem *MnuWebCamPing;
  172. TPopupMenu *pmuVds;
  173. TMenuItem *MnuVdsId;
  174. TMenuItem *MenuItem3;
  175. TMenuItem *MenuItem4;
  176. TPopupMenu *pmuAvi;
  177. TMenuItem *MnuAviId;
  178. TMenuItem *MenuItem7;
  179. TMenuItem *MenuItem8;
  180. TPopupMenu *pmuDsrc;
  181. TMenuItem *MnuDsrcId;
  182. TMenuItem *MenuItem10;
  183. TMenuItem *MenuItem11;
  184. TTimer *TmrLblTraffic;
  185. TTimer *TmrRefresh;
  186. TPopupMenu *pmuSigDet;
  187. TMenuItem *MnuSigDetId;
  188. TMenuItem *MenuItem19;
  189. TMenuItem *mmuSigDetPing;
  190. TPopupMenu *pmuSig;
  191. TMenuItem *MnuSigId;
  192. TMenuItem *MenuItem20;
  193. TMenuItem *mmuSigPing;
  194. TPopupMenu *pmuBit;
  195. TMenuItem *MnuBitId;
  196. TMenuItem *MenuItem6;
  197. TMenuItem *mmuBitPing;
  198. TPopupMenu *pmuPis;
  199. TMenuItem *MnuPisId;
  200. TMenuItem *MenuItem13;
  201. TMenuItem *MenuItem21;
  202. TPopupMenu *pmuPcs;
  203. TMenuItem *MnuPcsId;
  204. TMenuItem *MenuItem26;
  205. TMenuItem *MenuItem27;
  206. TPanel *PnlMap;
  207. TPanel *PnlProgress;
  208. TcxProgressBar *PbLoadMap;
  209. TPanel *PnlBack;
  210. TPanel *Panel1;
  211. TcxCheckBox *ChkDrawBit;
  212. TcxCheckBox *ChkDrawSig;
  213. TcxCheckBox *ChkDrawPcs;
  214. TcxCheckBox *ChkDrawPis;
  215. TcxCheckBox *ChkDrawSigDet;
  216. TcxCheckBox *ChkWebCam;
  217. TPanel *PnlToolBarxxx;
  218. TGroupBox *GroupBox2;
  219. TcxCheckBox *ChkViewExample;
  220. TcxCheckBox *ChkGisSearch;
  221. TcxCheckBox *ChkToolTip;
  222. TGroupBox *GrpFacility;
  223. TcxCheckBox *ChkDrawCtv;
  224. TcxCheckBox *ChkDrawAvi;
  225. TcxCheckBox *ChkDrawDsrc;
  226. TcxCheckBox *ChkDrawPark;
  227. TcxCheckBox *ChkDrawEvent;
  228. TcxCheckBox *ChkDrawRse;
  229. TcxCheckBox *ChkDrawWthr;
  230. TGroupBox *GrpPos;
  231. TLabel *Label11;
  232. TLabel *Label12;
  233. TcxSpinEdit *SePosY;
  234. TcxSpinEdit *SePosX;
  235. TPanel *PnlMapInfo;
  236. TImage *ImgDesc27;
  237. TImage *ImgDesc37;
  238. TLabel *Label16;
  239. TLabel *Label3;
  240. TLabel *LblZoomLevel;
  241. TLabel *LblLinkLevel;
  242. TcxGroupBox *panRemark;
  243. TGroupBox *GrpRse;
  244. TImage *ImgRseN;
  245. TImage *ImgRseC;
  246. TImage *Image1;
  247. TcxLabel *cxLabel1;
  248. TcxLabel *cxLabel2;
  249. TcxLabel *cxLabel17;
  250. TGroupBox *GroupBox7;
  251. TImage *ImgInc01;
  252. TImage *ImgInc02;
  253. TImage *ImgInc03;
  254. TImage *ImgInc04;
  255. TcxLabel *cxLabel9;
  256. TcxLabel *cxLabel10;
  257. TcxLabel *cxLabel11;
  258. TcxLabel *cxLabel12;
  259. TGroupBox *GroupBox8;
  260. TPanel *PnlTrf01;
  261. TPanel *PnlTrf02;
  262. TPanel *PnlTrf03;
  263. TPanel *PnlTrf00;
  264. TcxLabel *cxLabel13;
  265. TcxLabel *cxLabel14;
  266. TcxLabel *cxLabel15;
  267. TcxLabel *cxLabel16;
  268. TGroupBox *GroupBox9;
  269. TImage *ImgCctvN;
  270. TImage *ImgCctvC;
  271. TImage *ImgCctvM;
  272. TcxLabel *cxLabel3;
  273. TcxLabel *cxLabel4;
  274. TcxLabel *cxLabel5;
  275. TGroupBox *GroupBox10;
  276. TImage *ImgVmsN;
  277. TImage *ImgVmsC;
  278. TImage *ImgVmsM;
  279. TcxLabel *cxLabel6;
  280. TcxLabel *cxLabel7;
  281. TcxLabel *cxLabel8;
  282. TGroupBox *GrpWeb;
  283. TImage *Image2;
  284. TImage *Image3;
  285. TImage *Image4;
  286. TcxLabel *cxLabel18;
  287. TcxLabel *cxLabel19;
  288. TcxLabel *cxLabel20;
  289. TGroupBox *GrpDsrc;
  290. TImage *Image5;
  291. TImage *Image6;
  292. TImage *Image7;
  293. TcxLabel *cxLabel21;
  294. TcxLabel *cxLabel22;
  295. TcxLabel *cxLabel23;
  296. TGroupBox *GrpAvi;
  297. TImage *Image8;
  298. TImage *Image9;
  299. TImage *Image10;
  300. TcxLabel *cxLabel24;
  301. TcxLabel *cxLabel25;
  302. TcxLabel *cxLabel26;
  303. TGroupBox *GrpVds;
  304. TImage *Image11;
  305. TImage *Image12;
  306. TImage *Image13;
  307. TcxLabel *cxLabel27;
  308. TcxLabel *cxLabel28;
  309. TcxLabel *cxLabel29;
  310. TGroupBox *GroupBox4;
  311. TImage *ImgCurrent;
  312. TcxLabel *LblCurrTemp;
  313. TGroupBox *GroupBox5;
  314. TImage *ImgForecast;
  315. TcxLabel *LblMaxFore;
  316. TcxLabel *LblMinFore;
  317. TcxLabel *lblStep1;
  318. TcxLabel *lblStep2;
  319. TPanel *PnlToolbar;
  320. TcxLabel *lblGap1;
  321. TPanel *PnlGisTool;
  322. TcxCheckBox *ChkDrawCenter;
  323. TcxCheckBox *ChkDrawVms;
  324. TcxCheckBox *ChkDrawIncident;
  325. TcxCheckBox *ChkDrawVds;
  326. TcxCheckBox *ChkTrafficLayer;
  327. TPanel *PnlLoading;
  328. TPanel *PnlZoom;
  329. TListBox *ListBox1;
  330. TcxLabel *LblTraffic;
  331. TLabel *Label1;
  332. TLabel *Label2;
  333. void __fastcall FormDestroy(TObject *Sender);
  334. void __fastcall FormShow(TObject *Sender);
  335. void __fastcall TmrShowTimer(TObject *Sender);
  336. void __fastcall ChkDrawGisClick(TObject *Sender);
  337. void __fastcall mnuStopImageClick(TObject *Sender);
  338. void __fastcall mnuFacilityPingClick(TObject *Sender);
  339. void __fastcall pmuFacilityPopup(TObject *Sender);
  340. void __fastcall mnuCctvCamClick(TObject *Sender);
  341. void __fastcall mnuVmsMsgClick(TObject *Sender);
  342. void __fastcall mnuVmsCamClick(TObject *Sender);
  343. void __fastcall ChkGisSearchClick(TObject *Sender);
  344. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  345. void __fastcall panRemarkMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
  346. void __fastcall ChkViewExamplePropertiesChange(TObject *Sender);
  347. void __fastcall MnuWebCamClick(TObject *Sender);
  348. void __fastcall TmrLblTrafficTimer(TObject *Sender);
  349. void __fastcall TmrRefreshTimer(TObject *Sender);
  350. void __fastcall PnlToolbarDblClick(TObject *Sender);
  351. void __fastcall ListBox1DblClick(TObject *Sender);
  352. private: // User declarations
  353. public:
  354. void __fastcall InitMap();
  355. // For Map
  356. int FMapLinkLevel;
  357. public:
  358. public: // User declarations
  359. __fastcall TITS00MAP(TComponent* Owner, TForm *ParentForm);
  360. void __fastcall ShowLayerEditForm();
  361. void __fastcall LoadLocalSkin();
  362. void __fastcall CommClose();
  363. bool __fastcall FormInit();
  364. void __fastcall LoadGisMap();
  365. void __fastcall GetGisTrafficColor(TUTISLinkGrade &pUtisLinkColor);
  366. void __fastcall SetGisTrafficColor();
  367. void __fastcall RefreshMapTraffic();
  368. // Object Select
  369. TDDPoint m_ptSelect;
  370. void __fastcall SelectObjectByPos(double dPosX, double dPosY, bool bArrow=false);
  371. void __fastcall RefreshGisLink();
  372. bool __fastcall SelectLinkById(int ALinkLevel, String AId, bool AHide=false);
  373. void __fastcall ShowCctvStopImage(String AId, TPoint pt);
  374. void __fastcall ShowCctvCamera(String AId, TPoint pt);
  375. void __fastcall ShowVmsMessage(String AId, TPoint pt);
  376. void __fastcall ShowVmsCamera(String AId, TPoint pt);
  377. void __fastcall ShowWebCamera(String AId, TPoint pt);
  378. void __fastcall ShowLinkDetailInfo(String sLinkId, int nLinkLevel);
  379. void __fastcall UpdateFacilityStatus();
  380. void __fastcall UpdateEventStatus(); //남양주 블랙박스 이벤트 상태
  381. String FSelId;
  382. void __fastcall ShowHideFacility(TObject *Sender);
  383. void __fastcall ShowHideTraffic();
  384. void __fastcall OnMapPopupMenu(String AType, String AId, String APosX, String APosY, String AInfo);
  385. void __fastcall SelGisItem(int AType, String AId);
  386. void __fastcall InitGisRegion();
  387. void __fastcall InitGisTraffic();
  388. void __fastcall UpdateGisVms();
  389. void __fastcall UpdateGisVds();
  390. void __fastcall UpdateGisIncident();
  391. void __fastcall DebugList(String AMsg);
  392. };
  393. //---------------------------------------------------------------------------
  394. extern PACKAGE TITS00MAP *ITS00MAP;
  395. //---------------------------------------------------------------------------
  396. #endif