// CodeGear C++Builder
// Copyright (c) 1995, 2016 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'FMX.TMSWebGMaps.pas' rev: 31.00 (Windows)

#ifndef Fmx_TmswebgmapsHPP
#define Fmx_TmswebgmapsHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <Winapi.Windows.hpp>
#include <System.Win.Registry.hpp>
#include <System.UIConsts.hpp>
#include <System.SysUtils.hpp>
#include <System.TypInfo.hpp>
#include <System.Classes.hpp>
#include <FMX.Graphics.hpp>
#include <System.Types.hpp>
#include <FMX.Controls.hpp>
#include <System.StrUtils.hpp>
#include <FMX.TMSWebGMapsWebBrowser.hpp>
#include <FMX.TMSWebGMapsCommon.hpp>
#include <FMX.TMSWebGMapsControls.hpp>
#include <FMX.TMSWebGMapsMarkers.hpp>
#include <FMX.TMSWebGMapsConst.hpp>
#include <FMX.TMSWebGMapsCommonFunctions.hpp>
#include <FMX.TMSWebGMapsPolylines.hpp>
#include <FMX.TMSWebGMapsPolygons.hpp>
#include <FMX.TMSWebGMapsClusters.hpp>
#include <FMX.TMSWebGMapsDirections.hpp>
#include <System.UITypes.hpp>
#include <System.JSON.hpp>
#include <FMX.Types.hpp>

//-- user supplied -----------------------------------------------------------

#pragma link "wininet.a"


namespace Fmx
{
namespace Tmswebgmaps
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TStreetViewOptions;
class DELPHICLASS TMapOptions;
class DELPHICLASS TWeatherOptions;
class DELPHICLASS TElevationItem;
class DELPHICLASS TElevations;
class DELPHICLASS TRoutingWaypoint;
class DELPHICLASS TRoutingWaypoints;
class DELPHICLASS TMapPolylineOptions;
class DELPHICLASS TMapRouting;
class DELPHICLASS TMapLabel;
struct TJSEventParameter;
struct TGPSMetaData;
class DELPHICLASS TTMSFMXWebGMaps;
//-- type declarations -------------------------------------------------------
typedef void __fastcall (__closure *TWebGMapsErrorEvent)(System::TObject* Sender, Fmx::Tmswebgmapscommon::TErrorType ErrorType);

typedef void __fastcall (__closure *TMapTypeChange)(System::TObject* Sender, Fmx::Tmswebgmapscommon::TMapType NewMapType);

typedef void __fastcall (__closure *TInitHTMLEvent)(System::TObject* Sender, System::UnicodeString &HTML);

typedef void __fastcall (__closure *TRoutingWaypointAdded)(System::TObject* Sender, double Latitude, double Longitude, Fmx::Tmswebgmapspolylines::TPath* Route, bool &Allow);

typedef void __fastcall (__closure *TAfterRoutingWaypointAdded)(System::TObject* Sender, double Latitude, double Longitude, Fmx::Tmswebgmapspolylines::TPath* Route);

typedef void __fastcall (__closure *TEventMarker)(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);

typedef void __fastcall (__closure *TEventMarkerClick)(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);

typedef void __fastcall (__closure *TEventSubMarker)(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude, int IdParentMarker);

typedef void __fastcall (__closure *TEventMarkerZoom)(System::TObject* Sender, int IdMarker, bool &Allow);

typedef void __fastcall (__closure *TEventKMLLayer)(System::TObject* Sender, System::UnicodeString ObjectName, int IdLayer, double Latitude, double Longitude);

typedef void __fastcall (__closure *TEventPolyline)(System::TObject* Sender, int IdPolyline);

typedef void __fastcall (__closure *TEventPolylineClick)(System::TObject* Sender, int IdPolyline);

typedef void __fastcall (__closure *TEventPolygon)(System::TObject* Sender, int IdPolygon);

typedef void __fastcall (__closure *TEventPolygonClick)(System::TObject* Sender, int IdPolygon);

typedef void __fastcall (__closure *TEventCluster)(System::TObject* Sender, int IdCluster, int MarkerCount, double Latitude, double Longitude);

typedef void __fastcall (__closure *TEventBounds)(System::TObject* Sender, Fmx::Tmswebgmapscommonfunctions::TBounds* Bounds);

typedef void __fastcall (__closure *TEventInfoWindow)(System::TObject* Sender, int IdMarker);

typedef void __fastcall (__closure *TPositionMap)(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);

typedef void __fastcall (__closure *TPositionMouseMap)(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);

typedef void __fastcall (__closure *TMapZoomChange)(System::TObject* Sender, int NewLevel);

typedef void __fastcall (__closure *TExternalMapTypeChange)(System::TObject* Sender, int NewMapType);

typedef void __fastcall (__closure *TStreetViewChange)(System::TObject* Sender, int Heading, int Pitch, int Zoom);

class PASCALIMPLEMENTATION TStreetViewOptions : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	double FDefaultLongitude;
	Fmx::Tmswebgmapscommon::TPitchStreetView FPitch;
	double FDefaultLatitude;
	Fmx::Tmswebgmapscommon::THeadingStreetView FHeading;
	Fmx::Tmswebgmapscommon::TZoomStreetView FZoom;
	TTMSFMXWebGMaps* FWebGmaps;
	bool FVisible;
	void __fastcall InitStreetView(void);
	void __fastcall SetDefaultLatitude(const double Value);
	void __fastcall SetDefaultLongitude(const double Value);
	void __fastcall SetHeading(const Fmx::Tmswebgmapscommon::THeadingStreetView Value);
	void __fastcall SetPitch(const Fmx::Tmswebgmapscommon::TPitchStreetView Value);
	void __fastcall SetZoom(const Fmx::Tmswebgmapscommon::TZoomStreetView Value);
	void __fastcall SetVisible(const bool Value);
	
public:
	__fastcall TStreetViewOptions(TTMSFMXWebGMaps* AWebGmaps);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property double DefaultLatitude = {read=FDefaultLatitude, write=SetDefaultLatitude};
	__property double DefaultLongitude = {read=FDefaultLongitude, write=SetDefaultLongitude};
	__property Fmx::Tmswebgmapscommon::THeadingStreetView Heading = {read=FHeading, write=SetHeading, default=0};
	__property Fmx::Tmswebgmapscommon::TPitchStreetView Pitch = {read=FPitch, write=SetPitch, default=0};
	__property Fmx::Tmswebgmapscommon::TZoomStreetView Zoom = {read=FZoom, write=SetZoom, default=0};
	__property bool Visible = {read=FVisible, write=SetVisible, default=0};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TStreetViewOptions(void) { }
	
};


class PASCALIMPLEMENTATION TMapOptions : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	bool FDraggable;
	double FDefaultLongitude;
	bool FDisableDoubleClickZoom;
	double FDefaultLatitude;
	Fmx::Tmswebgmapscommon::TZoomMap FZoomMap;
	Fmx::Tmswebgmapscommon::TMapType FMapType;
	TTMSFMXWebGMaps* FWebGmaps;
	bool FEnableKeyboard;
	bool FScrollWheel;
	bool FDisableControls;
	bool FShowTraffic;
	Fmx::Tmswebgmapscommon::TLanguageName FLanguage;
	bool FShowBicycling;
	bool FShowPanoramio;
	bool FShowCloud;
	bool FShowWeather;
	bool FDisablePOI;
	Fmx::Tmswebgmapscommon::TZoomMarker FZoomMarker;
	bool FDisableTilt;
	bool FDefaultToCurrentLocation;
	void __fastcall SetDraggable(const bool Value);
	void __fastcall SetDefaultLatitude(const double Value);
	void __fastcall SetDefaultLongitude(const double Value);
	void __fastcall SetDisableDoubleClickZoom(const bool Value);
	void __fastcall SetMapType(const Fmx::Tmswebgmapscommon::TMapType Value);
	void __fastcall SetZoomMap(const Fmx::Tmswebgmapscommon::TZoomMap Value);
	void __fastcall SetEnableKeyboard(const bool Value);
	void __fastcall SetScrollWheel(const bool Value);
	void __fastcall SetDisableControls(const bool Value);
	void __fastcall SetShowTraffic(const bool Value);
	void __fastcall SetLanguage(const Fmx::Tmswebgmapscommon::TLanguageName Value);
	void __fastcall SetShowBicycling(const bool Value);
	void __fastcall SetShowPanoramio(const bool Value);
	void __fastcall SetShowCloud(const bool Value);
	void __fastcall SetShowWeather(const bool Value);
	void __fastcall SetDisablePOI(const bool Value);
	void __fastcall SetZoomMarker(const Fmx::Tmswebgmapscommon::TZoomMarker Value);
	void __fastcall SetDisableTilt(const bool Value);
	void __fastcall SetDefaultToCurrentLocation(const bool Value);
	
public:
	__fastcall TMapOptions(TTMSFMXWebGMaps* AWebGmaps);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property Fmx::Tmswebgmapscommon::TLanguageName Language = {read=FLanguage, write=SetLanguage, default=0};
	__property bool Draggable = {read=FDraggable, write=SetDraggable, default=1};
	__property Fmx::Tmswebgmapscommon::TZoomMap ZoomMap = {read=FZoomMap, write=SetZoomMap, default=10};
	__property Fmx::Tmswebgmapscommon::TZoomMarker ZoomMarker = {read=FZoomMarker, write=SetZoomMarker, default=0};
	__property Fmx::Tmswebgmapscommon::TMapType MapType = {read=FMapType, write=SetMapType, default=0};
	__property double DefaultLatitude = {read=FDefaultLatitude, write=SetDefaultLatitude};
	__property double DefaultLongitude = {read=FDefaultLongitude, write=SetDefaultLongitude};
	__property bool DefaultToCurrentLocation = {read=FDefaultToCurrentLocation, write=SetDefaultToCurrentLocation, default=0};
	__property bool DisableDoubleClickZoom = {read=FDisableDoubleClickZoom, write=SetDisableDoubleClickZoom, default=0};
	__property bool EnableKeyboard = {read=FEnableKeyboard, write=SetEnableKeyboard, default=1};
	__property bool ShowTraffic = {read=FShowTraffic, write=SetShowTraffic, default=0};
	__property bool ShowBicycling = {read=FShowBicycling, write=SetShowBicycling, default=0};
	__property bool ShowPanoramio = {read=FShowPanoramio, write=SetShowPanoramio, default=0};
	__property bool ShowCloud = {read=FShowCloud, write=SetShowCloud, default=0};
	__property bool ShowWeather = {read=FShowWeather, write=SetShowWeather, default=0};
	__property bool ScrollWheel = {read=FScrollWheel, write=SetScrollWheel, default=1};
	__property bool DisableControls = {read=FDisableControls, write=SetDisableControls, default=0};
	__property bool DisablePOI = {read=FDisablePOI, write=SetDisablePOI, default=0};
	__property bool DisableTilt = {read=FDisableTilt, write=SetDisableTilt, default=0};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TMapOptions(void) { }
	
};


class PASCALIMPLEMENTATION TWeatherOptions : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	Fmx::Tmswebgmapscommon::TWeatherWindSpeed FWindSpeedUnit;
	bool FShowInfoWindows;
	Fmx::Tmswebgmapscommon::TWeatherLabelColor FLabelColor;
	Fmx::Tmswebgmapscommon::TWeatherTemperatures FTemperatureUnit;
	TTMSFMXWebGMaps* FWebGmaps;
	void __fastcall SetLabelColor(const Fmx::Tmswebgmapscommon::TWeatherLabelColor Value);
	void __fastcall SetShowInfoWindows(const bool Value);
	void __fastcall SetTemperatureUnit(const Fmx::Tmswebgmapscommon::TWeatherTemperatures Value);
	void __fastcall SetWindSpeedUnit(const Fmx::Tmswebgmapscommon::TWeatherWindSpeed Value);
	
public:
	__fastcall TWeatherOptions(TTMSFMXWebGMaps* AWebGmaps);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property Fmx::Tmswebgmapscommon::TWeatherTemperatures TemperatureUnit = {read=FTemperatureUnit, write=SetTemperatureUnit, default=0};
	__property Fmx::Tmswebgmapscommon::TWeatherLabelColor LabelColor = {read=FLabelColor, write=SetLabelColor, default=0};
	__property Fmx::Tmswebgmapscommon::TWeatherWindSpeed WindSpeedUnit = {read=FWindSpeedUnit, write=SetWindSpeedUnit, default=0};
	__property bool ShowInfoWindows = {read=FShowInfoWindows, write=SetShowInfoWindows, default=1};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TWeatherOptions(void) { }
	
};


class PASCALIMPLEMENTATION TElevationItem : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	Fmx::Controls::TControl* FWebGMaps;
	double FLatitude;
	double FElevation;
	double FLongitude;
	double FResolution;
	void __fastcall SetElevation(const double Value);
	void __fastcall SetLatitude(const double Value);
	void __fastcall SetLongitude(const double Value);
	void __fastcall SetResolution(const double Value);
	
public:
	__fastcall virtual TElevationItem(System::Classes::TCollection* Collection);
	__fastcall virtual ~TElevationItem(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	void __fastcall FromJSON(System::Json::TJSONObject* jo);
	
__published:
	__property double Elevation = {read=FElevation, write=SetElevation};
	__property double Latitude = {read=FLatitude, write=SetLatitude};
	__property double Longitude = {read=FLongitude, write=SetLongitude};
	__property double Resolution = {read=FResolution, write=SetResolution};
};


class PASCALIMPLEMENTATION TElevations : public System::Classes::TCollection
{
	typedef System::Classes::TCollection inherited;
	
public:
	TElevationItem* operator[](int index) { return this->Items[index]; }
	
private:
	Fmx::Controls::TControl* FWebGMaps;
	HIDESBASE TElevationItem* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TElevationItem* Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	virtual void __fastcall Update(System::Classes::TCollectionItem* Item);
	virtual void __fastcall Notify(System::Classes::TCollectionItem* Item, System::Classes::TCollectionNotification Action);
	
public:
	__fastcall TElevations(Fmx::Controls::TControl* AWebGMaps);
	HIDESBASE TElevationItem* __fastcall Add(void)/* overload */;
	__property TElevationItem* Items[int index] = {read=GetItem, write=SetItem/*, default*/};
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TElevations(void) { }
	
};


class PASCALIMPLEMENTATION TRoutingWaypoint : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	Fmx::Tmswebgmapscommonfunctions::TLocation* FLocation;
	int FDistance;
	System::UnicodeString FAddress;
	void __fastcall SetLocation(Fmx::Tmswebgmapscommonfunctions::TLocation* const Value);
	
public:
	__fastcall virtual TRoutingWaypoint(System::Classes::TCollection* Collection);
	__fastcall virtual ~TRoutingWaypoint(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property Fmx::Tmswebgmapscommonfunctions::TLocation* Location = {read=FLocation, write=SetLocation};
	__property System::UnicodeString Address = {read=FAddress, write=FAddress};
	__property int Distance = {read=FDistance, write=FDistance, nodefault};
};


class PASCALIMPLEMENTATION TRoutingWaypoints : public System::Classes::TCollection
{
	typedef System::Classes::TCollection inherited;
	
public:
	TRoutingWaypoint* operator[](int index) { return this->Items[index]; }
	
private:
	HIDESBASE TRoutingWaypoint* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TRoutingWaypoint* Value);
	
protected:
	virtual void __fastcall Update(System::Classes::TCollectionItem* Item);
	virtual void __fastcall Notify(System::Classes::TCollectionItem* Item, System::Classes::TCollectionNotification Action);
	
public:
	__fastcall TRoutingWaypoints(void);
	HIDESBASE TRoutingWaypoint* __fastcall Add(void)/* overload */;
	__property TRoutingWaypoint* Items[int index] = {read=GetItem, write=SetItem/*, default*/};
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TRoutingWaypoints(void) { }
	
};


class PASCALIMPLEMENTATION TMapPolylineOptions : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	int FOpacity;
	int FWidth;
	Fmx::Tmswebgmapspolylines::TSymbols* FIcons;
	System::Uitypes::TAlphaColor FColor;
	void __fastcall SetColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetIcons(Fmx::Tmswebgmapspolylines::TSymbols* const Value);
	void __fastcall SetOpacity(const int Value);
	void __fastcall SetWidth(const int Value);
	
public:
	__fastcall TMapPolylineOptions(void);
	__fastcall virtual ~TMapPolylineOptions(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property Fmx::Tmswebgmapspolylines::TSymbols* Icons = {read=FIcons, write=SetIcons};
	__property System::Uitypes::TAlphaColor Color = {read=FColor, write=SetColor, default=-16776961};
	__property int Opacity = {read=FOpacity, write=SetOpacity, default=100};
	__property int Width = {read=FWidth, write=SetWidth, default=4};
};


class PASCALIMPLEMENTATION TMapRouting : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	Fmx::Controls::TControl* FWebGMaps;
	bool FEnabled;
	Fmx::Tmswebgmapscommon::TRoutingMarkers FRoutingMarkers;
	Fmx::Tmswebgmapscommon::TRoutingType FRoutingType;
	Fmx::Tmswebgmapspolylines::TPath* FPath;
	Fmx::Tmswebgmapspolylines::TPath* FWayPoints;
	Fmx::Tmswebgmapscommon::TMarkerIconColor FMarkerColor;
	System::UnicodeString FMarkerIcon;
	TMapPolylineOptions* FPolylineOptions;
	Fmx::Tmswebgmapscommon::TUnits FUnits;
	void __fastcall SetPath(Fmx::Tmswebgmapspolylines::TPath* const Value);
	void __fastcall SetEnabled(const bool Value);
	void __fastcall SetWayPoints(Fmx::Tmswebgmapspolylines::TPath* const Value);
	void __fastcall SetRoutingType(const Fmx::Tmswebgmapscommon::TRoutingType Value);
	int __fastcall GetDistance(void);
	System::UnicodeString __fastcall GetEndAddress(void);
	System::UnicodeString __fastcall GetStartAddress(void);
	__property Fmx::Tmswebgmapspolylines::TPath* WayPoints = {read=FWayPoints, write=SetWayPoints};
	
protected:
	TRoutingWaypoints* FRoutingWaypoints;
	
public:
	__fastcall TMapRouting(Fmx::Controls::TControl* AWebGMaps);
	__fastcall virtual ~TMapRouting(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	void __fastcall Clear(void);
	void __fastcall RemoveLastWayPoint(void);
	__property Fmx::Tmswebgmapspolylines::TPath* Path = {read=FPath, write=SetPath};
	__property System::UnicodeString StartAddress = {read=GetStartAddress};
	__property System::UnicodeString EndAddress = {read=GetEndAddress};
	__property int Distance = {read=GetDistance, nodefault};
	__property Fmx::Tmswebgmapscommon::TUnits Units = {read=FUnits, write=FUnits, default=0};
	
__published:
	__property bool Enabled = {read=FEnabled, write=SetEnabled, default=0};
	__property Fmx::Tmswebgmapscommon::TRoutingType RoutingType = {read=FRoutingType, write=SetRoutingType, default=0};
	__property Fmx::Tmswebgmapscommon::TRoutingMarkers Markers = {read=FRoutingMarkers, write=FRoutingMarkers, default=1};
	__property Fmx::Tmswebgmapscommon::TMarkerIconColor MarkerColor = {read=FMarkerColor, write=FMarkerColor, default=3};
	__property System::UnicodeString MarkerIcon = {read=FMarkerIcon, write=FMarkerIcon};
	__property TMapPolylineOptions* PolylineOptions = {read=FPolylineOptions, write=FPolylineOptions};
};


class PASCALIMPLEMENTATION TMapLabel : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	System::Uitypes::TAlphaColor FBorderColor;
	System::Uitypes::TAlphaColor FColor;
	Fmx::Graphics::TFont* FFont;
	System::Uitypes::TAlphaColor FFontColor;
	int FMargin;
	System::UnicodeString FText;
	TTMSFMXWebGMaps* FOwner;
	int FOffsetTop;
	int FOffsetLeft;
	bool FVisible;
	void __fastcall SetBorderColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetFontColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetFont(Fmx::Graphics::TFont* const Value);
	void __fastcall SetText(const System::UnicodeString Value);
	void __fastcall SetOwner(TTMSFMXWebGMaps* const Value);
	void __fastcall SetMargin(const int Value);
	void __fastcall SetOffsetLeft(const int Value);
	void __fastcall SetOffsetTop(const int Value);
	
protected:
	__property TTMSFMXWebGMaps* Owner = {read=FOwner, write=SetOwner};
	__property System::UnicodeString Text = {read=FText, write=SetText};
	
public:
	__fastcall TMapLabel(TTMSFMXWebGMaps* WebGMaps);
	__fastcall virtual ~TMapLabel(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	__property int OffsetLeft = {read=FOffsetLeft, write=SetOffsetLeft, default=0};
	__property int OffsetTop = {read=FOffsetTop, write=SetOffsetTop, default=30};
	
__published:
	__property System::Uitypes::TAlphaColor Color = {read=FColor, write=SetColor, default=-1};
	__property System::Uitypes::TAlphaColor BorderColor = {read=FBorderColor, write=SetBorderColor, default=-16777216};
	__property int Margin = {read=FMargin, write=SetMargin, default=2};
	__property Fmx::Graphics::TFont* Font = {read=FFont, write=SetFont};
	__property System::Uitypes::TAlphaColor FontColor = {read=FFontColor, write=SetFontColor, default=-16777216};
	__property bool Visible = {read=FVisible, write=FVisible, default=1};
};


struct DECLSPEC_DRECORD TJSEventParameter
{
public:
	System::UnicodeString parameter;
	System::UnicodeString value;
};


typedef System::DynamicArray<TJSEventParameter> TJSEventParameters;

struct DECLSPEC_DRECORD TGPSMetaData
{
public:
	System::UnicodeString AuthorName;
	System::UnicodeString AuthorLink;
	System::UnicodeString TrackName;
	System::UnicodeString TrackType;
};


class PASCALIMPLEMENTATION TTMSFMXWebGMaps : public Fmx::Tmswebgmapswebbrowser::TTMSFMXWebGMapsWebBrowser
{
	typedef Fmx::Tmswebgmapswebbrowser::TTMSFMXWebGMapsWebBrowser inherited;
	
private:
	int FSubMarkersVisible;
	bool bLaunchFinish;
	bool FReinitialize;
	bool FRouting;
	System::UnicodeString FRoutingString;
	TWebGMapsErrorEvent FOnWebGMapsError;
	System::UnicodeString CompleteHtmlFile;
	System::Classes::TNotifyEvent FOnDownloadFinish;
	System::Classes::TNotifyEvent FOnMapTilesLoad;
	System::Classes::TNotifyEvent FOnDownloadStart;
	TEventMarkerClick FOnMarkerClick;
	TEventSubMarker FOnSubMarkerClick;
	TEventKMLLayer FOnKMLLayerClick;
	TPositionMouseMap FOnMapClick;
	TPositionMap FOnMapMouseMove;
	TPositionMap FOnMapMoveStart;
	TPositionMap FOnMapMoveEnd;
	TMapZoomChange FOnMapZoomChange;
	TEventMarker FOnMarkerDragStart;
	TEventMarker FOnMarkerDragEnd;
	Fmx::Tmswebgmapsmarkers::TMarkers* FMarkers;
	TMapTypeChange FOnMapTypeChange;
	TPositionMap FOnMapDblClick;
	TPositionMap FOnMapMouseEnter;
	TPositionMap FOnMapMouseExit;
	TPositionMap FOnMapMove;
	TMapOptions* FMapOptions;
	System::Classes::TNotifyEvent FOnMapIdle;
	TEventInfoWindow FOnMarkerInfoWindowCloseClick;
	TEventMarker FOnMarkerDblClick;
	TEventMarker FOnMarkerMouseDown;
	TEventMarker FOnMarkerMouseEnter;
	TEventMarker FOnMarkerMouseUp;
	TEventMarker FOnMarkerMouseExit;
	TEventMarkerZoom FOnMarkerZoomIn;
	TEventMarkerZoom FOnMarkerZoomOut;
	TEventMarker FOnMarkerDrag;
	Fmx::Tmswebgmapscontrols::TControlsOptions* FControlsOptions;
	TStreetViewOptions* FStreetViewOptions;
	TPositionMap FOnStreetViewMove;
	TStreetViewChange FOnStreetViewChange;
	TWeatherOptions* FWeatherOptions;
	TEventCluster FOnClusterClick;
	TEventCluster FOnClusterMouseExit;
	TEventCluster FOnClusterMouseEnter;
	Fmx::Tmswebgmapspolylines::TPolylines* FPolylines;
	TEventPolylineClick FOnPolylineClick;
	TEventPolyline FOnPolylineDblClick;
	TEventPolyline FOnPolylineMouseDown;
	TEventPolyline FOnPolylineMouseEnter;
	TEventPolyline FOnPolylineMouseUp;
	TEventPolyline FOnPolylineMouseExit;
	TEventPolyline FOnPolylineChanged;
	TEventPolygonClick FOnPolygonClick;
	TEventPolygon FOnPolygonDblClick;
	TEventPolygon FOnPolygonMouseDown;
	TEventPolygon FOnPolygonMouseEnter;
	TEventPolygon FOnPolygonMouseUp;
	TEventPolygon FOnPolygonMouseExit;
	TEventPolygon FOnPolygonChanged;
	TEventBounds FOnBoundsRetrieved;
	TRoutingWaypointAdded FOnRoutingWaypointAdded;
	Fmx::Tmswebgmapsdirections::TDirections* FDirections;
	Fmx::Tmswebgmapspolygons::TPolygons* FPolygons;
	System::UnicodeString FAPIKey;
	TInitHTMLEvent FOnInitHTML;
	TElevations* FElevations;
	Fmx::Tmswebgmapsclusters::TClusters* FClusters;
	System::UnicodeString FAPIClientID;
	System::UnicodeString FAPISignature;
	System::UnicodeString FAPIChannel;
	System::UnicodeString FAPIClientAuthURL;
	TMapRouting* FMapRouting;
	TMapLabel* FMapLabel;
	bool FShowDebugConsole;
	TAfterRoutingWaypointAdded FOnAfterRoutingWaypointAdded;
	Fmx::Tmswebgmapscommonfunctions::TLocation* FCurrentLocation;
	void __fastcall SetMarkers(Fmx::Tmswebgmapsmarkers::TMarkers* const Value);
	void __fastcall SetMapOptions(TMapOptions* const Value);
	void __fastcall SetControlsOptions(Fmx::Tmswebgmapscontrols::TControlsOptions* const Value);
	void __fastcall SetStreetViewOptions(TStreetViewOptions* const Value);
	HIDESBASE void __fastcall SetVersion(const System::UnicodeString Value);
	void __fastcall SetWeatherOptions(TWeatherOptions* const Value);
	void __fastcall SetPolylines(Fmx::Tmswebgmapspolylines::TPolylines* const Value);
	bool __fastcall MapClusterToJS(Fmx::Tmswebgmapsclusters::TMapCluster* Cluster, bool IsUpdate);
	bool __fastcall MapPolylineToJS(Fmx::Tmswebgmapspolylines::TPolyline* Polyline, bool IsUpdate);
	bool __fastcall MapPolygonToJS(Fmx::Tmswebgmapspolygons::TMapPolygon* Polygon, bool IsUpdate);
	System::UnicodeString __fastcall ReplaceHTML(System::UnicodeString HTML);
	void __fastcall SetDirections(Fmx::Tmswebgmapsdirections::TDirections* const Value);
	void __fastcall SetPolygons(Fmx::Tmswebgmapspolygons::TPolygons* const Value);
	void __fastcall SetCurrentLocation(Fmx::Tmswebgmapscommonfunctions::TLocation* const Value);
	void __fastcall SetElevations(TElevations* const Value);
	void __fastcall SetClusters(Fmx::Tmswebgmapsclusters::TClusters* const Value);
	void __fastcall SetMapRouting(TMapRouting* const Value);
	void __fastcall SetAPIKey(const System::UnicodeString Value);
	void __fastcall SetShowDebugConsole(const bool Value);
	void __fastcall SetMapLabel(TMapLabel* const Value);
	
protected:
	void __fastcall WBInitialized(System::TObject* Sender);
	virtual void __fastcall BeforeNavigate(Fmx::Tmswebgmapswebbrowser::TTMSFMXWebGMapsCustomWebBrowserBeforeNavigateParams &Params);
	bool __fastcall ParseForJSEvent(System::UnicodeString urlstr);
	void __fastcall SubMarkerClick(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude, int IdParentMarker);
	void __fastcall MarkerClick(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall PolylineClick(System::TObject* Sender, int IdPolyline);
	void __fastcall PolygonClick(System::TObject* Sender, int IdPolygon);
	void __fastcall MapClick(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	System::UnicodeString __fastcall LoadGeoJSONInt(bool APolygon, System::UnicodeString AFilename, System::Uitypes::TAlphaColor AColor = (System::Uitypes::TAlphaColor)(0xff0000ff), int Opacity = 0xff, System::Uitypes::TAlphaColor BackgroundColor = (System::Uitypes::TAlphaColor)(0xff0000ff), int BackgroundOpacity = 0x64, int AWidth = 0x2, bool Zoom = true, System::Uitypes::TAlphaColor HoverBorderColor = (System::Uitypes::TAlphaColor)(0xff0000ff), System::Uitypes::TAlphaColor HoverBackgroundColor = (System::Uitypes::TAlphaColor)(0xff0000ff));
	void __fastcall KMLLayerClick(System::TObject* Sender, System::UnicodeString ObjectName, int IdLayer, double Latitude, double Longitude);
	void __fastcall RoutingWaypointAdded(System::TObject* Sender, System::UnicodeString Route);
	void __fastcall ClusterClick(System::TObject* Sender, int IdCluster, int MarkerCount, double Latitude, double Longitude);
	void __fastcall ClusterMouseEnter(System::TObject* Sender, int IdCluster, int MarkerCount, double Latitude, double Longitude);
	void __fastcall ClusterMouseExit(System::TObject* Sender, int IdCluster, int MarkerCount, double Latitude, double Longitude);
	void __fastcall MarkerDblClick(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall MarkerInfoWindowCloseClick(System::TObject* Sender, int IdMarker);
	void __fastcall MarkerDragStart(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall MarkerDrag(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall MarkerDragEnd(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall MarkerMouseDown(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall MarkerMouseUp(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall MarkerMouseEnter(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall MarkerMouseExit(System::TObject* Sender, System::UnicodeString MarkerTitle, int IdMarker, double Latitude, double Longitude);
	void __fastcall MarkerZoom(System::TObject* Sender, int IdMarker);
	void __fastcall MarkerMapZoom(System::TObject* Sender);
	void __fastcall MarkerZoomIn(System::TObject* Sender, int IdMarker, bool &Allow);
	void __fastcall MarkerZoomOut(System::TObject* Sender, int IdMarker, bool &Allow);
	void __fastcall PolylineDblClick(System::TObject* Sender, int IdPolyline);
	void __fastcall PolylineMouseDown(System::TObject* Sender, int IdPolyline);
	void __fastcall PolylineMouseUp(System::TObject* Sender, int IdPolyline);
	void __fastcall PolylineMouseEnter(System::TObject* Sender, int IdPolyline);
	void __fastcall PolylineMouseExit(System::TObject* Sender, int IdPolyline);
	void __fastcall PolylineChanged(System::TObject* Sender, int IdPolyline);
	void __fastcall PolygonDblClick(System::TObject* Sender, int IdPolygon);
	void __fastcall PolygonMouseDown(System::TObject* Sender, int IdPolygon);
	void __fastcall PolygonMouseUp(System::TObject* Sender, int IdPolygon);
	void __fastcall PolygonMouseEnter(System::TObject* Sender, int IdPolygon);
	void __fastcall PolygonMouseExit(System::TObject* Sender, int IdPolygon);
	void __fastcall PolygonChanged(System::TObject* Sender, int IdPolygon);
	void __fastcall BoundsRetrieved(System::TObject* Sender, Fmx::Tmswebgmapscommonfunctions::TBounds* Bounds);
	void __fastcall MapDblClick(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	void __fastcall MapMoveStart(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	void __fastcall MapMoveEnd(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	void __fastcall MapMove(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	void __fastcall StreetViewMove(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	void __fastcall StreetViewChange(System::TObject* Sender, int Heading, int Pitch, int Zoom);
	void __fastcall MapTilesLoad(System::TObject* Sender);
	void __fastcall MapIdle(System::TObject* Sender);
	void __fastcall MapZoomChange(System::TObject* Sender, int NewLevel);
	void __fastcall MapTypeChange(System::TObject* Sender, int NewMapType);
	void __fastcall MapMouseMove(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	void __fastcall MapMouseEnter(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	void __fastcall MapMouseExit(System::TObject* Sender, double Latitude, double Longitude, int X, int Y);
	void __fastcall GMapsError(System::TObject* Sender, Fmx::Tmswebgmapscommon::TErrorType ErrorType);
	System::Types::TPoint __fastcall FoundMousePosition(void);
	System::UnicodeString __fastcall InitHtmlFile(void);
	HIDESBASE virtual int __fastcall GetVersionNr(void);
	bool __fastcall GetElevationInt(System::Classes::TStringList* Locations, int ResultCount = 0x2);
	System::UnicodeString __fastcall InvokeScript(const System::UnicodeString AScript);
	void __fastcall GetPolygonFromJavaScript(System::Classes::TStringList* &APolygon, int Index);
	void __fastcall GetPolygonCircleFromJavaScript(System::UnicodeString &APolygon, int Index);
	void __fastcall GetPolygonRectangleFromJavaScript(System::UnicodeString &APolygon, int Index);
	void __fastcall GetPolylineFromJavaScript(System::Classes::TStringList* &APolyline, int Index);
	void __fastcall HandleRouting(double Latitude, double Longitude);
	void __fastcall SetIEEmulation(void);
	
public:
	HIDESBASE System::UnicodeString __fastcall GetVersion(void);
	bool __fastcall CreateMapSubMarkers(Fmx::Tmswebgmapsmarkers::TMarker* Marker);
	bool __fastcall DeleteMapSubMarkers(void);
	__property Fmx::Tmswebgmapscommonfunctions::TLocation* CurrentLocation = {read=FCurrentLocation, write=SetCurrentLocation};
	__fastcall virtual ~TTMSFMXWebGMaps(void);
	__fastcall virtual TTMSFMXWebGMaps(System::Classes::TComponent* AOwner);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	virtual void __fastcall Loaded(void);
	virtual void __fastcall Initialize(void);
	void __fastcall DoEvent(System::UnicodeString AEvent, TJSEventParameters AParameters);
	virtual void __fastcall Reinitialize(void);
	virtual void __fastcall SetVisible(const bool Value);
	void __fastcall Flush(void);
	bool __fastcall CreateMapCluster(Fmx::Tmswebgmapsclusters::TMapCluster* Cluster);
	bool __fastcall UpdateMapCluster(Fmx::Tmswebgmapsclusters::TMapCluster* Cluster);
	bool __fastcall DeleteMapCluster(int Id);
	bool __fastcall DeleteAllMapCluster(void);
	bool __fastcall AddMarkerToCluster(Fmx::Tmswebgmapsclusters::TMapCluster* Cluster, Fmx::Tmswebgmapsmarkers::TMarker* Marker);
	bool __fastcall DeleteMarkerFromCluster(Fmx::Tmswebgmapsclusters::TMapCluster* Cluster, Fmx::Tmswebgmapsmarkers::TMarker* Marker);
	bool __fastcall AddMapKMLLayer(System::UnicodeString Url, bool ZoomToBounds = true);
	bool __fastcall DeleteMapKMLLayer(int Id);
	bool __fastcall DeleteAllMapKMLLayer(void);
	bool __fastcall DeleteAllMapMarker(void);
	bool __fastcall CreateMapMarker(Fmx::Tmswebgmapsmarkers::TMarker* Marker);
	bool __fastcall DeleteMapMarker(int Id);
	bool __fastcall UpdateMapMarker(Fmx::Tmswebgmapsmarkers::TMarker* Marker);
	bool __fastcall UpdateMapMarkers(void);
	bool __fastcall ClearPolylines(void);
	bool __fastcall CreateMapPolyline(Fmx::Tmswebgmapspolylines::TPolyline* Polyline);
	bool __fastcall UpdateMapPolyline(Fmx::Tmswebgmapspolylines::TPolyline* Polyline);
	bool __fastcall DeleteMapPolyline(int Id);
	bool __fastcall DeleteAllMapPolyline(void);
	bool __fastcall GetModifiedMapPolyline(Fmx::Tmswebgmapspolylines::TPolyline* Polyline);
	bool __fastcall ClearPolygons(void);
	bool __fastcall CreateMapPolygon(Fmx::Tmswebgmapspolygons::TMapPolygon* Polygon);
	bool __fastcall UpdateMapPolygon(Fmx::Tmswebgmapspolygons::TMapPolygon* Polygon);
	bool __fastcall DeleteMapPolygon(int Id);
	bool __fastcall DeleteAllMapPolygon(void);
	bool __fastcall GetModifiedMapPolygon(Fmx::Tmswebgmapspolygons::TMapPolygon* Polygon);
	bool __fastcall OpenMarkerInfoWindowHtml(int Id, System::UnicodeString HtmlText);
	bool __fastcall OpenSubMarkerInfoWindowHtml(int Id, System::UnicodeString HtmlText);
	bool __fastcall CloseMarkerInfoWindowHtml(int Id);
	bool __fastcall CloseSubMarkerInfoWindowHtml(int Id);
	bool __fastcall StartMarkerBounceAnimation(int Id);
	bool __fastcall StopMarkerBounceAnimation(int Id);
	bool __fastcall MapPanTo(double Latitude, double Longitude);
	bool __fastcall MapZoomTo(Fmx::Tmswebgmapscommonfunctions::TBounds* Bounds);
	bool __fastcall MapPanBy(int X, int Y);
	bool __fastcall GetMapBounds(void);
	bool __fastcall DegreesToLonLat(System::UnicodeString StrLon, System::UnicodeString StrLat, double &Lon, double &Lat);
	bool __fastcall XYToLonLat(int X, int Y, double &Lon, double &Lat);
	bool __fastcall LonLatToXY(double Lon, double Lat, int &X, int &Y);
	bool __fastcall RenderDirections(System::UnicodeString Origin, System::UnicodeString Destination, System::Uitypes::TAlphaColor RouteColor)/* overload */;
	bool __fastcall RenderDirections(double OriginLatitude, double OriginLongitude, double DestinationLatitude, double DestinationLongitude, System::Uitypes::TAlphaColor RouteColor)/* overload */;
	bool __fastcall RenderDirections(System::UnicodeString Origin, System::UnicodeString Destination, Fmx::Tmswebgmapscommon::TTravelMode TravelMode = (Fmx::Tmswebgmapscommon::TTravelMode)(0x0), bool AvoidHighways = false, bool AvoidTolls = false, System::Classes::TStringList* WayPoints = (System::Classes::TStringList*)(0x0), bool OptimizeWayPoints = false, System::Uitypes::TAlphaColor RouteColor = (System::Uitypes::TAlphaColor)(0x0))/* overload */;
	bool __fastcall RenderDirections(double OriginLatitude, double OriginLongitude, double DestinationLatitude, double DestinationLongitude, Fmx::Tmswebgmapscommon::TTravelMode TravelMode = (Fmx::Tmswebgmapscommon::TTravelMode)(0x0), bool AvoidHighways = false, bool AvoidTolls = false, System::Classes::TStringList* WayPoints = (System::Classes::TStringList*)(0x0), bool OptimizeWayPoints = false, System::Uitypes::TAlphaColor RouteColor = (System::Uitypes::TAlphaColor)(0x0))/* overload */;
	bool __fastcall RemoveAllDirections(void)/* overload */;
	bool __fastcall RemoveDirections(void)/* overload */;
	bool __fastcall RemoveDirections(int Index)/* overload */;
	bool __fastcall ExecJScript(const System::UnicodeString Script);
	__property System::UnicodeString APIChannel = {read=FAPIChannel, write=FAPIChannel};
	__property System::UnicodeString APIClientID = {read=FAPIClientID, write=FAPIClientID};
	__property System::UnicodeString APISignature = {read=FAPISignature, write=FAPISignature};
	__property System::UnicodeString APIClientAuthURL = {read=FAPIClientAuthURL, write=FAPIClientAuthURL};
	__property bool ShowDebugConsole = {read=FShowDebugConsole, write=SetShowDebugConsole, nodefault};
	void __fastcall SwitchToStreetView(void);
	void __fastcall SwitchToMap(void);
	void __fastcall GetDirections(System::UnicodeString Origin, System::UnicodeString Destination, bool Alternatives = false, Fmx::Tmswebgmapscommon::TTravelMode TravelMode = (Fmx::Tmswebgmapscommon::TTravelMode)(0x0), Fmx::Tmswebgmapscommon::TUnits Units = (Fmx::Tmswebgmapscommon::TUnits)(0x0), Fmx::Tmswebgmapscommon::TLanguageName Language = (Fmx::Tmswebgmapscommon::TLanguageName)(0x0), bool AvoidHighways = false, bool AvoidTolls = false, System::Classes::TStringList* WayPoints = (System::Classes::TStringList*)(0x0), bool OptimizeWayPoints = false)/* overload */;
	void __fastcall GetDirections(double OriginLatitude, double OriginLongitude, double DestinationLatitude, double DestinationLongitude, bool Alternatives = false, Fmx::Tmswebgmapscommon::TTravelMode TravelMode = (Fmx::Tmswebgmapscommon::TTravelMode)(0x0), Fmx::Tmswebgmapscommon::TUnits Units = (Fmx::Tmswebgmapscommon::TUnits)(0x0), Fmx::Tmswebgmapscommon::TLanguageName Language = (Fmx::Tmswebgmapscommon::TLanguageName)(0x0), bool AvoidHighways = false, bool AvoidTolls = false, System::Classes::TStringList* WayPoints = (System::Classes::TStringList*)(0x0), bool OptimizeWayPoints = false)/* overload */;
	void __fastcall FillDirectionList(System::Classes::TStrings* List, int Route = 0x0);
	void __fastcall FillRouteList(System::Classes::TStrings* List, Fmx::Tmswebgmapscommon::TUnits Units);
	double __fastcall Distance(double la1, double lo1, double la2, double lo2);
	bool __fastcall GetCurrentLocation(void);
	bool __fastcall GetElevation(double Latitude, double Longitude)/* overload */;
	bool __fastcall GetElevation(Fmx::Tmswebgmapspolylines::TPath* Path, int ResultCount = 0x2)/* overload */;
	__property TElevations* Elevations = {read=FElevations, write=SetElevations};
	virtual void __fastcall DoInitHTML(System::UnicodeString &HTML);
	System::UnicodeString __fastcall LoadGPSRoute(System::UnicodeString AFilename, System::Uitypes::TAlphaColor AColor = (System::Uitypes::TAlphaColor)(0xffff0000), int AWidth = 0x2, bool ZoomToRoute = false);
	System::UnicodeString __fastcall LoadGeoJSONPolyline(System::UnicodeString AFilename, System::Uitypes::TAlphaColor AColor = (System::Uitypes::TAlphaColor)(0xff0000ff), int Opacity = 0xff, int AWidth = 0x2, bool Zoom = true, System::Uitypes::TAlphaColor HoverColor = (System::Uitypes::TAlphaColor)(0xff0000ff));
	System::UnicodeString __fastcall LoadGeoJSONPolygon(System::UnicodeString AFilename, System::Uitypes::TAlphaColor BorderColor = (System::Uitypes::TAlphaColor)(0xff0000ff), int Opacity = 0xff, System::Uitypes::TAlphaColor BackgroundColor = (System::Uitypes::TAlphaColor)(0xff0000ff), int BackgroundOpacity = 0x64, int AWidth = 0x2, bool Zoom = true, System::Uitypes::TAlphaColor HoverBorderColor = (System::Uitypes::TAlphaColor)(0xff0000ff), System::Uitypes::TAlphaColor HoverBackgroundColor = (System::Uitypes::TAlphaColor)(0xff0000ff));
	void __fastcall LoadMarkersFromPoi(System::UnicodeString PoiFile, Fmx::Tmswebgmapscommon::TMarkerIconColor MarkerColor = (Fmx::Tmswebgmapscommon::TMarkerIconColor)(0x1));
	void __fastcall SaveMarkersToPoi(System::UnicodeString PoiFile);
	
__published:
	__property Align = {default=0};
	__property Anchors;
	__property System::UnicodeString APIKey = {read=FAPIKey, write=SetAPIKey};
	__property Fmx::Tmswebgmapsclusters::TClusters* Clusters = {read=FClusters, write=SetClusters};
	__property Fmx::Tmswebgmapsmarkers::TMarkers* Markers = {read=FMarkers, write=SetMarkers};
	__property Fmx::Tmswebgmapspolylines::TPolylines* Polylines = {read=FPolylines, write=SetPolylines};
	__property Fmx::Tmswebgmapspolygons::TPolygons* Polygons = {read=FPolygons, write=SetPolygons};
	__property Fmx::Tmswebgmapsdirections::TDirections* Directions = {read=FDirections, write=SetDirections};
	__property TMapOptions* MapOptions = {read=FMapOptions, write=SetMapOptions};
	__property TMapRouting* Routing = {read=FMapRouting, write=SetMapRouting};
	__property TStreetViewOptions* StreetViewOptions = {read=FStreetViewOptions, write=SetStreetViewOptions};
	__property Fmx::Tmswebgmapscontrols::TControlsOptions* ControlsOptions = {read=FControlsOptions, write=SetControlsOptions};
	__property TMapLabel* PolygonLabel = {read=FMapLabel, write=SetMapLabel};
	__property TabStop = {default=1};
	__property TabOrder = {default=-1};
	__property TWeatherOptions* WeatherOptions = {read=FWeatherOptions, write=SetWeatherOptions};
	__property System::UnicodeString Version = {read=GetVersion, write=SetVersion};
	__property TInitHTMLEvent OnInitHTML = {read=FOnInitHTML, write=FOnInitHTML};
	__property TWebGMapsErrorEvent OnWebGMapsError = {read=FOnWebGMapsError, write=FOnWebGMapsError};
	__property System::Classes::TNotifyEvent OnDownloadStart = {read=FOnDownloadStart, write=FOnDownloadStart};
	__property System::Classes::TNotifyEvent OnDownloadFinish = {read=FOnDownloadFinish, write=FOnDownloadFinish};
	__property System::Classes::TNotifyEvent OnMapTilesLoad = {read=FOnMapTilesLoad, write=FOnMapTilesLoad};
	__property System::Classes::TNotifyEvent OnMapIdle = {read=FOnMapIdle, write=FOnMapIdle};
	__property TEventMarkerClick OnMarkerClick = {read=FOnMarkerClick, write=FOnMarkerClick};
	__property TEventSubMarker OnSubMarkerClick = {read=FOnSubMarkerClick, write=FOnSubMarkerClick};
	__property TEventKMLLayer OnKMLLayerClick = {read=FOnKMLLayerClick, write=FOnKMLLayerClick};
	__property TRoutingWaypointAdded OnRoutingWaypointAdded = {read=FOnRoutingWaypointAdded, write=FOnRoutingWaypointAdded};
	__property TAfterRoutingWaypointAdded OnAfterRoutingWaypointAdded = {read=FOnAfterRoutingWaypointAdded, write=FOnAfterRoutingWaypointAdded};
	__property TEventCluster OnClusterClick = {read=FOnClusterClick, write=FOnClusterClick};
	__property TEventCluster OnClusterMouseEnter = {read=FOnClusterMouseEnter, write=FOnClusterMouseEnter};
	__property TEventCluster OnClusterMouseExit = {read=FOnClusterMouseExit, write=FOnClusterMouseExit};
	__property TEventMarker OnMarkerDblClick = {read=FOnMarkerDblClick, write=FOnMarkerDblClick};
	__property TEventInfoWindow OnMarkerInfoWindowCloseClick = {read=FOnMarkerInfoWindowCloseClick, write=FOnMarkerInfoWindowCloseClick};
	__property TEventMarker OnMarkerDragStart = {read=FOnMarkerDragStart, write=FOnMarkerDragStart};
	__property TEventMarker OnMarkerDrag = {read=FOnMarkerDrag, write=FOnMarkerDrag};
	__property TEventMarker OnMarkerDragEnd = {read=FOnMarkerDragEnd, write=FOnMarkerDragEnd};
	__property TEventMarker OnMarkerMouseDown = {read=FOnMarkerMouseDown, write=FOnMarkerMouseDown};
	__property TEventMarker OnMarkerMouseUp = {read=FOnMarkerMouseUp, write=FOnMarkerMouseUp};
	__property TEventMarker OnMarkerMouseEnter = {read=FOnMarkerMouseEnter, write=FOnMarkerMouseEnter};
	__property TEventMarker OnMarkerMouseExit = {read=FOnMarkerMouseExit, write=FOnMarkerMouseExit};
	__property TEventMarkerZoom OnMarkerZoomIn = {read=FOnMarkerZoomIn, write=FOnMarkerZoomIn};
	__property TEventMarkerZoom OnMarkerZoomOut = {read=FOnMarkerZoomOut, write=FOnMarkerZoomOut};
	__property TEventPolylineClick OnPolylineClick = {read=FOnPolylineClick, write=FOnPolylineClick};
	__property TEventPolyline OnPolylineDblClick = {read=FOnPolylineDblClick, write=FOnPolylineDblClick};
	__property TEventPolyline OnPolylineMouseDown = {read=FOnPolylineMouseDown, write=FOnPolylineMouseDown};
	__property TEventPolyline OnPolylineMouseUp = {read=FOnPolylineMouseUp, write=FOnPolylineMouseUp};
	__property TEventPolyline OnPolylineMouseEnter = {read=FOnPolylineMouseEnter, write=FOnPolylineMouseEnter};
	__property TEventPolyline OnPolylineMouseExit = {read=FOnPolylineMouseExit, write=FOnPolylineMouseExit};
	__property TEventPolyline OnPolylineChanged = {read=FOnPolylineChanged, write=FOnPolylineChanged};
	__property TEventPolygonClick OnPolygonClick = {read=FOnPolygonClick, write=FOnPolygonClick};
	__property TEventPolygon OnPolygonDblClick = {read=FOnPolygonDblClick, write=FOnPolygonDblClick};
	__property TEventPolygon OnPolygonMouseDown = {read=FOnPolygonMouseDown, write=FOnPolygonMouseDown};
	__property TEventPolygon OnPolygonMouseUp = {read=FOnPolygonMouseUp, write=FOnPolygonMouseUp};
	__property TEventPolygon OnPolygonMouseEnter = {read=FOnPolygonMouseEnter, write=FOnPolygonMouseEnter};
	__property TEventPolygon OnPolygonMouseExit = {read=FOnPolygonMouseExit, write=FOnPolygonMouseExit};
	__property TEventPolygon OnPolygonChanged = {read=FOnPolygonChanged, write=FOnPolygonChanged};
	__property TEventBounds OnBoundsRetrieved = {read=FOnBoundsRetrieved, write=FOnBoundsRetrieved};
	__property TPositionMouseMap OnMapClick = {read=FOnMapClick, write=FOnMapClick};
	__property TPositionMap OnMapDblClick = {read=FOnMapDblClick, write=FOnMapDblClick};
	__property TPositionMap OnMapMoveStart = {read=FOnMapMoveStart, write=FOnMapMoveStart};
	__property TPositionMap OnMapMoveEnd = {read=FOnMapMoveEnd, write=FOnMapMoveEnd};
	__property TPositionMap OnMapMove = {read=FOnMapMove, write=FOnMapMove};
	__property TPositionMap OnStreetViewMove = {read=FOnStreetViewMove, write=FOnStreetViewMove};
	__property TStreetViewChange OnStreetViewChange = {read=FOnStreetViewChange, write=FOnStreetViewChange};
	__property TMapZoomChange OnMapZoomChange = {read=FOnMapZoomChange, write=FOnMapZoomChange};
	__property TMapTypeChange OnMapTypeChange = {read=FOnMapTypeChange, write=FOnMapTypeChange};
	__property TPositionMap OnMapMouseMove = {read=FOnMapMouseMove, write=FOnMapMouseMove};
	__property TPositionMap OnMapMouseEnter = {read=FOnMapMouseEnter, write=FOnMapMouseEnter};
	__property TPositionMap OnMapMouseExit = {read=FOnMapMouseExit, write=FOnMapMouseExit};
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 MAJ_VER = System::Int8(0x2);
static const System::Int8 MIN_VER = System::Int8(0x9);
static const System::Int8 REL_VER = System::Int8(0x1);
static const System::Int8 BLD_VER = System::Int8(0x1);
extern DELPHI_PACKAGE System::UnicodeString __fastcall ReplaceTextControlPosition(System::UnicodeString Script, System::UnicodeString TextToReplace, Fmx::Tmswebgmapscommon::TControlPosition Position);
}	/* namespace Tmswebgmaps */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSWEBGMAPS)
using namespace Fmx::Tmswebgmaps;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX)
using namespace Fmx;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Fmx_TmswebgmapsHPP
