FRAME_GoogleMapF.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. //---------------------------------------------------------------------------
  2. #ifndef FRAME_GoogleMapFH
  3. #define FRAME_GoogleMapFH
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <Controls.hpp>
  7. #include <StdCtrls.hpp>
  8. #include <Forms.hpp>
  9. //---------------------------------------------------------------------------
  10. #include "DataTypesF.h"
  11. #include "CDSCodeF.h"
  12. #include "WindowMsgF.h"
  13. #include <ExtCtrls.hpp>
  14. #include <Graphics.hpp>
  15. #include <Menus.hpp>
  16. #include <OleCtrls.hpp>
  17. #include <SHDocVw.hpp>
  18. #include "GMClasses.hpp"
  19. #include "GMMap.hpp"
  20. #include "GMMapVCL.hpp"
  21. #include <Dialogs.hpp>
  22. #include <ImgList.hpp>
  23. #include "GMLinkedComponents.hpp"
  24. #include "GMMarker.hpp"
  25. #include "GMMarkerVCL.hpp"
  26. #include "cxCheckBox.hpp"
  27. #include <GIFImg.hpp>
  28. #include "cxButtons.hpp"
  29. #include "cxContainer.hpp"
  30. #include "cxControls.hpp"
  31. #include "cxEdit.hpp"
  32. #include "cxGraphics.hpp"
  33. #include "cxLabel.hpp"
  34. #include "cxLookAndFeelPainters.hpp"
  35. #include "cxLookAndFeels.hpp"
  36. #include "dxSkinBlack.hpp"
  37. #include "dxSkinBlue.hpp"
  38. #include "dxSkinCaramel.hpp"
  39. #include "dxSkinCoffee.hpp"
  40. #include "dxSkinDarkRoom.hpp"
  41. #include "dxSkinDarkSide.hpp"
  42. #include "dxSkinFoggy.hpp"
  43. #include "dxSkinGlassOceans.hpp"
  44. #include "dxSkiniMaginary.hpp"
  45. #include "dxSkinLilian.hpp"
  46. #include "dxSkinLiquidSky.hpp"
  47. #include "dxSkinLondonLiquidSky.hpp"
  48. #include "dxSkinMcSkin.hpp"
  49. #include "dxSkinMoneyTwins.hpp"
  50. #include "dxSkinOffice2007Black.hpp"
  51. #include "dxSkinOffice2007Blue.hpp"
  52. #include "dxSkinOffice2007Green.hpp"
  53. #include "dxSkinOffice2007Pink.hpp"
  54. #include "dxSkinOffice2007Silver.hpp"
  55. #include "dxSkinOffice2010Black.hpp"
  56. #include "dxSkinOffice2010Blue.hpp"
  57. #include "dxSkinOffice2010Silver.hpp"
  58. #include "dxSkinsCore.hpp"
  59. #include "dxSkinSeven.hpp"
  60. #include "dxSkinSharp.hpp"
  61. #include "dxSkinSilver.hpp"
  62. #include "dxSkinStardust.hpp"
  63. //---------------------------------------------------------------------------
  64. /*
  65. * 이전/다음 구현을 위한 구조체 선언
  66. * 정적 이중링크로 구현
  67. */
  68. #define D_EXT_QUEUE_SIZE 256 //512//1024/2048
  69. #define D_EXT_QUEUE_MASK (D_EXT_QUEUE_SIZE-1)
  70. /*
  71. * 레이어 Extent 정보
  72. */
  73. typedef struct
  74. {
  75. short Zoom;
  76. double Lat;
  77. double Lng;
  78. } TMapExtent;
  79. typedef struct
  80. {
  81. bool Extent;
  82. short TotCnt;
  83. short CurIdx;
  84. TMapExtent extent[D_EXT_QUEUE_SIZE+1];
  85. } EXTENT_QUEUE;
  86. //---------------------------------------------------------------------------
  87. class TObjGMMap : public TCustomGMMap
  88. {
  89. public:
  90. void __fastcall SettingZoom(int Zoom) { SetZoom(Zoom); };
  91. };
  92. //---------------------------------------------------------------------------
  93. class TFRAMEGoogleMap : public TFrame
  94. {
  95. __published: // IDE-managed Components
  96. TPanel *PnlToolbar;
  97. TcxButton *BtnMapToJpg;
  98. TcxButton *BtnMoveMapToCenter;
  99. TcxButton *BtnZoomIn;
  100. TcxButton *BtnZoomOut;
  101. TcxButton *BtnEraseEvent;
  102. TEdit *EdFocus;
  103. TcxButton *BtnMoveDefBounds;
  104. TcxButton *BtnZoomPrev;
  105. TcxButton *BtnZoomNext;
  106. TcxButton *BtnIconSelect;
  107. TcxLabel *cxLabel26;
  108. TcxLabel *cxLabel27;
  109. TSaveDialog *SaveDialog1;
  110. TcxImageList *ilToolbarsSmall;
  111. TWebBrowser *WebBrowser1;
  112. TGMMap *GMMap1;
  113. TPanel *PnlGisTool;
  114. TcxLabel *cxLabel1;
  115. TcxCheckBox *ChkDrawCtv;
  116. TcxCheckBox *ChkDrawVds;
  117. TcxCheckBox *ChkDrawVms;
  118. TPanel *PnlLoading;
  119. TImage *ImgLoading;
  120. TcxCheckBox *ChkDrawTraffic;
  121. TcxCheckBox *ChkDrawRegion;
  122. TcxCheckBox *ChkDrawIncident;
  123. TcxLabel *cxLabel2;
  124. TcxLabel *LblZoom;
  125. TcxLabel *lblTitle;
  126. void __fastcall BtnMapToJpgClick(TObject *Sender);
  127. void __fastcall BtnMoveMapToCenterClick(TObject *Sender);
  128. void __fastcall WebBrowser1DownloadComplete(TObject *Sender);
  129. void __fastcall GMMap1AfterPageLoaded(TObject *Sender, bool First);
  130. void __fastcall GMMap1BoundsChanged(TObject *Sender, TLatLngBounds *NewBounds);
  131. void __fastcall GMMap1ZoomChanged(TObject *Sender, int NewZoom);
  132. void __fastcall GMMap1DragEnd(TObject *Sender);
  133. void __fastcall BtnZoomInClick(TObject *Sender);
  134. void __fastcall BtnZoomOutClick(TObject *Sender);
  135. void __fastcall BtnZoomPrevClick(TObject *Sender);
  136. void __fastcall BtnZoomNextClick(TObject *Sender);
  137. void __fastcall BtnMoveDefBoundsClick(TObject *Sender);
  138. void __fastcall GMMap1CenterChanged(TObject *Sender, TLatLng *LatLng, double X,
  139. double Y);
  140. void __fastcall ChkDrawGisClick(TObject *Sender);
  141. void __fastcall GMMap1MouseMove(TObject *Sender, TLatLng *LatLng, double X, double Y);
  142. private: // User declarations
  143. void __fastcall SetLinkLevel(int ALinkLevel);
  144. int FLinkLevel;
  145. EXTENT_QUEUE FExtent; // 이전/다음 정보를 저장할 전역변수
  146. TMapExtent FPrev; // 이전
  147. String FTitle;
  148. public:
  149. TLatLng *FCenLatLng;
  150. TMapTypeId FMapTypeId;
  151. TLatLngBounds *FMapBounds;
  152. int FMapZoom;
  153. int FBaseZoom;
  154. double FCenterLat;
  155. double FCenterLng;
  156. TNotifyEvent FOnDrawFacilityClick;
  157. TNotifyEvent FOnZoomChangeClick;
  158. double FLat, FLng;
  159. public:
  160. void __fastcall LoadLocalSkin();
  161. void __fastcall LoadGisMap();
  162. void __fastcall ShowHideTrafficLayer(bool AShow);
  163. void __fastcall SelectObjectByPos(double dPosX, double dPosY, bool bArrow=false);
  164. void __fastcall SelectObjectByPos();
  165. bool __fastcall SelectLinkByPos(int X, int Y, String &ALinkId);
  166. bool __fastcall GetLevelLinkId(int ALinkLevel, String &sLinkId, int X, int Y);
  167. int __fastcall GetLayerIndex();
  168. void __fastcall SelGisItem(int AType, String AId);
  169. void __fastcall OnCloseQuery(bool &CanClose);
  170. bool __fastcall AddExtentQ(double ALat, double ALng, int FZoom);
  171. bool __fastcall PrevExtentQ();
  172. bool __fastcall NextExtentQ();
  173. void __fastcall RemoveMarker(TGMMarker *AMarker);
  174. public: // User declarations
  175. __fastcall TFRAMEGoogleMap(TComponent* Owner);
  176. __property int LinkLevel = {read = FLinkLevel, write=SetLinkLevel };
  177. };
  178. //---------------------------------------------------------------------------
  179. extern PACKAGE TFRAMEGoogleMap *FRAMEGoogleMap;
  180. //---------------------------------------------------------------------------
  181. #endif