123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- //---------------------------------------------------------------------------
- #ifndef FRAME_GoogleMapFH
- #define FRAME_GoogleMapFH
- //---------------------------------------------------------------------------
- #include <Classes.hpp>
- #include <Controls.hpp>
- #include <StdCtrls.hpp>
- #include <Forms.hpp>
- //---------------------------------------------------------------------------
- #include "DataTypesF.h"
- #include "WindowMsgF.h"
- #include "cxButtons.hpp"
- #include "cxCheckBox.hpp"
- #include "cxContainer.hpp"
- #include "cxControls.hpp"
- #include "cxEdit.hpp"
- #include "cxGraphics.hpp"
- #include "cxLabel.hpp"
- #include "cxLookAndFeelPainters.hpp"
- #include "cxLookAndFeels.hpp"
- #include "dxSkinBlack.hpp"
- #include "dxSkinBlue.hpp"
- #include "dxSkinsCore.hpp"
- #include "GMClasses.hpp"
- #include "GMLinkedComponents.hpp"
- #include "GMMap.hpp"
- #include "GMMapVCL.hpp"
- #include "GMMarker.hpp"
- #include "GMMarkerVCL.hpp"
- #include <Dialogs.hpp>
- #include <ExtCtrls.hpp>
- #include <Menus.hpp>
- #include <OleCtrls.hpp>
- #include <SHDocVw.hpp>
- //---------------------------------------------------------------------------
- /*
- * 이전/다음 구현을 위한 구조체 선언
- * 정적 이중링크로 구현
- */
- #define D_EXT_QUEUE_SIZE 256 //512//1024/2048
- #define D_EXT_QUEUE_MASK (D_EXT_QUEUE_SIZE-1)
- /*
- * 레이어 Extent 정보
- */
- typedef struct
- {
- short Zoom;
- double Lat;
- double Lng;
- } TMapExtent;
- typedef struct
- {
- bool Extent;
- short TotCnt;
- short CurIdx;
- TMapExtent extent[D_EXT_QUEUE_SIZE+1];
- } EXTENT_QUEUE;
- //---------------------------------------------------------------------------
- class TObjGMMap : public TCustomGMMap
- {
- public:
- void __fastcall SettingZoom(int Zoom) { SetZoom(Zoom); };
- };
- //---------------------------------------------------------------------------
- class TFRAMEGoogleMap : public TFrame
- {
- __published: // IDE-managed Components
- TPanel *PnlToolbar;
- TcxButton *BtnMapToJpg;
- TcxButton *BtnMoveMapToCenter;
- TcxButton *BtnZoomIn;
- TcxButton *BtnZoomOut;
- TcxButton *BtnRefresh;
- TcxButton *BtnMoveDefBounds;
- TcxButton *BtnZoomPrev;
- TcxButton *BtnZoomNext;
- TcxButton *BtnIconSelect;
- TcxLabel *lblGap1;
- TcxLabel *lblGap2;
- TSaveDialog *SaveDialog1;
- TWebBrowser *WebBrowser1;
- TPanel *PnlGisTool;
- TcxLabel *lblGap3;
- TPanel *PnlLoading;
- TPanel *PnlZoom;
- TcxCheckBox *ChkDrawCenter;
- TcxCheckBox *ChkDrawVms;
- TcxCheckBox *ChkDrawIncident;
- TcxCheckBox *ChkDrawVds;
- TcxCheckBox *ChkTrafficLayer;
- TGMMarker *GMMarker1;
- TTimer *TmrSelect;
- TGMMap *GMMap1;
- void __fastcall BtnMapToJpgClick(TObject *Sender);
- void __fastcall BtnMoveMapToCenterClick(TObject *Sender);
- void __fastcall GMMap1AfterPageLoaded(TObject *Sender, bool First);
- void __fastcall GMMap1BoundsChanged(TObject *Sender, TLatLngBounds *NewBounds);
- void __fastcall GMMap1ZoomChanged(TObject *Sender, int NewZoom);
- void __fastcall GMMap1DragEnd(TObject *Sender);
- void __fastcall BtnZoomInClick(TObject *Sender);
- void __fastcall BtnZoomOutClick(TObject *Sender);
- void __fastcall BtnZoomPrevClick(TObject *Sender);
- void __fastcall BtnZoomNextClick(TObject *Sender);
- void __fastcall BtnMoveDefBoundsClick(TObject *Sender);
- void __fastcall GMMap1CenterChanged(TObject *Sender, TLatLng *LatLng, double X,
- double Y);
- void __fastcall TmrSelectTimer(TObject *Sender);
- void __fastcall GMMap1DragStart(TObject *Sender);
- void __fastcall WebBrowser1DocumentComplete(TObject *ASender, const IDispatch *pDisp, OleVariant &URL);
- void __fastcall GMMap1MouseMove(TObject *Sender, TLatLng *LatLng, double X, double Y);
- void __fastcall BtnIconSelectClick(TObject *Sender);
- private: // User declarations
- void __fastcall SetLinkLevel(int ALinkLevel);
- int FLinkLevel;
- EXTENT_QUEUE FExtent; // 이전/다음 정보를 저장할 전역변수
- TMapExtent FPrev; // 이전
- bool FIsDragginStart;
- bool FIsDragginEnd;
- bool FIsDragging;
- public:
- TLatLng *FCenLatLng;
- TMapTypeId FMapTypeId;
- TLatLngBounds *FMapBounds;
- int FMapZoom;
- int FBaseZoom;
- double FCenterLat;
- double FCenterLng;
- TNotifyEvent FOnDrawFacilityClick;
- TNotifyEvent FOnZoomChanged;
- TNotifyEvent FOnBoundsChanged;
- TNotifyEvent FOnAfterPageLoaded;
- TNotifyEvent FOnFirstPageLoaded;
- bool FIsFirst;
- bool FMapStart;
- double FLat, FLng;
- public:
- void __fastcall LoadLocalSkin();
- void __fastcall LoadGisMap();
- void __fastcall ShowHideTrafficLayer(bool AShow);
- void __fastcall SelectObjectByPos(double dPosX, double dPosY, bool bArrow=false);
- bool __fastcall SelectLinkByPos(int X, int Y, String &ALinkId);
- bool __fastcall GetLevelLinkId(int ALinkLevel, String &sLinkId, int X, int Y);
- int __fastcall GetLayerIndex();
- void __fastcall SelGisItem(int AType, String AId);
- void __fastcall OnCloseQuery(bool &CanClose);
- bool __fastcall AddExtentQ(double ALat, double ALng, int FZoom);
- bool __fastcall PrevExtentQ();
- bool __fastcall NextExtentQ();
- void __fastcall RemoveMarker(TGMMarker *AMarker);
- public: // User declarations
- __fastcall TFRAMEGoogleMap(TComponent* Owner);
- __property int LinkLevel = {read = FLinkLevel, write=SetLinkLevel };
- };
- //---------------------------------------------------------------------------
- extern PACKAGE TFRAMEGoogleMap *FRAMEGoogleMap;
- //---------------------------------------------------------------------------
- #endif
|