123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- //---------------------------------------------------------------------------
- #pragma hdrstop
- #include "CDSLayerF.h"
- #include "ITSUtilF.h"
- #include "ITSMapF.h"
- #include "AppGlobalF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- TItsLayer::TItsLayer()
- {
- }
- TItsLayer::TItsLayer(bool AUse, int AZOOM, String ALINK_TYPE, int ALEVL, bool ADefault)
- {
- Use = AUse;
- ZOOM = AZOOM;
- LINK_TYPE = ALINK_TYPE;
- LEVL = ALEVL;
- Default = ADefault;
- }
- //---------------------------------------------------------------------------
- TItsLayer::~TItsLayer()
- {
- }
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- TItsLayerManager *ItsLayerManager = NULL;
- //---------------------------------------------------------------------------
- /*
- * Layer Manager
- */
- TItsLayerManager::TItsLayerManager()
- {
- FFacilityLayers.Push("CCTV", new TLayerIdx("CCTV", 5, 1));
- FFacilityLayers.Push("VMS", new TLayerIdx("VMS", 6, 1));
- FFacilityLayers.Push("VDS", new TLayerIdx("VDS", 7, 1));
- FFacilityLayers.Push("WCAM", new TLayerIdx("WCAM", 21, 1));
- FFacilityLayers.Push("CCAM", new TLayerIdx("CCAM", 22, 1));
- FFacilityLayers.Push("PARK", new TLayerIdx("PARK", 16, 1));
- }
- //---------------------------------------------------------------------------
- TItsLayerManager::~TItsLayerManager()
- {
- }
- //---------------------------------------------------------------------------
- int TItsLayerManager::GetLayerIndex(String ALayerType)
- {
- TLayerIdx *pLayer = FFacilityLayers.Find(ALayerType);
- if (pLayer) return pLayer->Index;
- if (ALayerType.Pos("±³Â÷·Î°¨½Ã")) return 22;
- if (ALayerType.Pos("CCTV")) return 5;
- return -1;
- }
- //---------------------------------------------------------------------------
- String TItsLayerManager::GetLayerType(int ALayerIndex)
- {
- String sLayerType[] =
- {
- "TRAFFIC",
- "LINK",
- "IFSC",
- "ROAD",
- "NODE",
- "CCTV",
- "VMS",
- "VDS",
- "VDSDET",
- "VDSR",
- "VDSRDET",
- "VDSC",
- "VDSCDET",
- "AVI",
- "RSE",
- "DSRC",
- "PARK",
- "PVMS",
- "BIT",
- "SIG",
- "SIGDET",
- "WCAM",
- "CCAM",
- "EVENT",
- "WTHR",
- "ATMP",
- "INCD",
- "SELECT",
- };
- if (ALayerIndex < 0 || ALayerIndex > LyrTp_Select) return "";
- return sLayerType[ALayerIndex];
- }
- //---------------------------------------------------------------------------
- bool TItsLayerManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
- {
- #if 1
- FLists.Push(12, new TItsLayer(true, 12, "R", 3, false));
- FLists.Push(13, new TItsLayer(true, 13, "R", 4, true));
- FLists.Push(14, new TItsLayer(true, 14, "I", 2, false));
- FLists.Push(15, new TItsLayer(true, 15, "I", 2, true));
- FLists.Push(16, new TItsLayer(true, 16, "L", 1, false));
- FLists.Push(17, new TItsLayer(true, 17, "L", 1, false));
- FLists.Push(18, new TItsLayer(true, 18, "L", 1, false));
- FLists.Push(19, new TItsLayer(true, 19, "L", 1, false));
- FLists.Push(20, new TItsLayer(true, 20, "L", 1, true));
- #else
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "SELECT * \r\n"
- " FROM TB_LAYER_INFO \r\n";
- FLists.Lock();
- try
- {
- FLists.RemoveAll();
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Prepared = true;
- pADO->Open();
- //int nRows = pADO->RecordCount;
- for( ; !pADO->Eof; pADO->Next())
- {
- TItsLayer *pLayer = new TItsLayer();
- pLayer->Use = pADO->FieldByName("LINK_TYPE")->AsString == "X" ? false : true;
- pLayer->ZOOM = pADO->FieldByName("ZOOM")->AsInteger;
- pLayer->LINK_TYPE = pADO->FieldByName("LINK_TYPE")->AsString;
- pLayer->LEVL = pADO->FieldByName("LEVL")->AsInteger;
- pLayer->Default = pADO->FieldByName("DFLT_YN")->AsString == "Y" ? true : false;
- FLists.Push(pLayer->ZOOM, pLayer);
- if (pLayer->Use)
- {
- TItsVrtxList *pVrtx = new TItsVrtxList();
- pVrtx->ZOOM = pLayer->ZOOM;
- FVrtxs.Push(pVrtx->ZOOM, pVrtx);
- }
- }
- }
- catch(EDatabaseError &E)
- {
- ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
- DBERRORMSG("TItsLayerManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &exception)
- {
- ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
- DBERRORMSG("TItsLayerManager::LoadFromDb", String(exception.ClassName()), exception.Message, sQry);
- throw Exception(String(exception.ClassName()) + exception.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- FLists.UnLock();
- }
- #endif
- return true;
- }
- //---------------------------------------------------------------------------
- int TItsLayerManager::GetDefaultLinkLayer()
- {
- int nLayerIdx = -1;
- FOR_STL(TItsLayer*, pObj, FLists)
- {
- if (pObj->LINK_TYPE == "L" && pObj->Default)
- {
- nLayerIdx = pObj->LEVL;
- break;
- }
- }
- return nLayerIdx;
- }
- //---------------------------------------------------------------------------
- int TItsLayerManager::GetDefaultIfscLayer()
- {
- int nLayerIdx = -1;
- FOR_STL(TItsLayer*, pObj, FLists)
- {
- if (pObj->LINK_TYPE == "I" && pObj->Default)
- {
- nLayerIdx = pObj->LEVL;
- break;
- }
- }
- return nLayerIdx;
- }
- //---------------------------------------------------------------------------
- int TItsLayerManager::GetDefaultRoadLayer()
- {
- int nLayerIdx = -1;
- FOR_STL(TItsLayer*, pObj, FLists)
- {
- if (pObj->LINK_TYPE == "R" && pObj->Default)
- {
- nLayerIdx = pObj->LEVL;
- break;
- }
- }
- return nLayerIdx;
- }
- //---------------------------------------------------------------------------
- #if 0
- SELECT A.LINK_ID, A.LEVL, A.X_CRDN_ARR, A.Y_CRDN_ARR
- FROM TB_LINK_VRTX_ARR A,
- TB_LINK B
- WHERE A.LINK_ID = B.LINK_ID
- AND A.LEVL IN (SELECT DISTINCT LEVL
- FROM TB_LAYER_INFO
- WHERE LINK_TYPE = 'L')
- #endif
|