//--------------------------------------------------------------------------- #ifndef FRAME_GoogleMapFH #define FRAME_GoogleMapFH //--------------------------------------------------------------------------- #include #include #include #include //--------------------------------------------------------------------------- #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 #include #include #include #include //--------------------------------------------------------------------------- /* * ÀÌÀü/´ÙÀ½ ±¸ÇöÀ» À§ÇÑ ±¸Á¶Ã¼ ¼±¾ð * Á¤Àû ÀÌÁ߸µÅ©·Î ±¸Çö */ #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