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

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

#ifndef Fmx_TmswebgmapsreversegeocodingHPP
#define Fmx_TmswebgmapsreversegeocodingHPP

#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 <System.SysUtils.hpp>
#include <System.Classes.hpp>
#include <FMX.TMSWebGMapsCommon.hpp>
#include <FMX.Types.hpp>
#include <FMX.TMSWebGMapsConst.hpp>
#include <System.StrUtils.hpp>
#include <System.Variants.hpp>
#include <System.TypInfo.hpp>
#include <Xml.XMLDoc.hpp>
#include <Xml.XMLIntf.hpp>
#include <FMX.TMSWebGMapsCommonFunctions.hpp>
#include <FMX.TMSWebGMapsWebKit.hpp>

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

namespace Fmx
{
namespace Tmswebgmapsreversegeocoding
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TWebGMapsAddress;
class DELPHICLASS TTMSFMXWebGMapsReverseGeocoding;
//-- type declarations -------------------------------------------------------
class PASCALIMPLEMENTATION TWebGMapsAddress : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	Fmx::Tmswebgmapscommon::TTMSFMXWebGMapsGeocodingService* FWebGmapsGeocodingService;
	System::UnicodeString FFormattedAddress;
	System::UnicodeString FStreetNumber;
	System::UnicodeString FStreet;
	System::UnicodeString FPostalCode;
	System::UnicodeString FCountry;
	System::UnicodeString FCity;
	System::UnicodeString FRegion;
	System::UnicodeString FCountryCode;
	System::UnicodeString FState;
	System::UnicodeString FPostalTown;
	System::UnicodeString FRegionCode;
	System::UnicodeString FStateCode;
	System::UnicodeString FSuburb;
	void __fastcall SetFormattedAddress(const System::UnicodeString Value);
	void __fastcall SetStreetNumber(const System::UnicodeString Value);
	void __fastcall SetStreet(const System::UnicodeString Value);
	void __fastcall SetCity(const System::UnicodeString Value);
	void __fastcall SetCountry(const System::UnicodeString Value);
	void __fastcall SetPostalCode(const System::UnicodeString Value);
	void __fastcall SetRegion(const System::UnicodeString Value);
	void __fastcall SetCounntryCode(const System::UnicodeString Value);
	void __fastcall SetState(const System::UnicodeString Value);
	void __fastcall SetPostalTown(const System::UnicodeString Value);
	void __fastcall SetRegionCode(const System::UnicodeString Value);
	void __fastcall SetStateCode(const System::UnicodeString Value);
	void __fastcall SetSuburb(const System::UnicodeString Value);
	
public:
	__fastcall TWebGMapsAddress(Fmx::Tmswebgmapscommon::TTMSFMXWebGMapsGeocodingService* AWebGmapsGeocodingService);
	
__published:
	__property System::UnicodeString FormattedAddress = {read=FFormattedAddress, write=SetFormattedAddress};
	__property System::UnicodeString StreetNumber = {read=FStreetNumber, write=SetStreetNumber};
	__property System::UnicodeString Street = {read=FStreet, write=SetStreet};
	__property System::UnicodeString City = {read=FCity, write=SetCity};
	__property System::UnicodeString Suburb = {read=FSuburb, write=SetSuburb};
	__property System::UnicodeString State = {read=FState, write=SetState};
	__property System::UnicodeString StateCode = {read=FStateCode, write=SetStateCode};
	__property System::UnicodeString Region = {read=FRegion, write=SetRegion};
	__property System::UnicodeString RegionCode = {read=FRegionCode, write=SetRegionCode};
	__property System::UnicodeString Country = {read=FCountry, write=SetCountry};
	__property System::UnicodeString CountryCode = {read=FCountryCode, write=SetCounntryCode};
	__property System::UnicodeString PostalCode = {read=FPostalCode, write=SetPostalCode};
	__property System::UnicodeString PostalTown = {read=FPostalTown, write=SetPostalTown};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TWebGMapsAddress(void) { }
	
};


class PASCALIMPLEMENTATION TTMSFMXWebGMapsReverseGeocoding : public Fmx::Tmswebgmapscommon::TTMSFMXWebGMapsGeocodingService
{
	typedef Fmx::Tmswebgmapscommon::TTMSFMXWebGMapsGeocodingService inherited;
	
private:
	double FLatitude;
	double FLongitude;
	TWebGMapsAddress* FResultAddress;
	Fmx::Tmswebgmapscommon::TLanguageName FLanguage;
	System::UnicodeString FAPIKey;
	Xml::Xmlintf::_di_IXMLNode __fastcall FoundNode(Xml::Xmlintf::_di_IXMLNode XmlNode, System::UnicodeString NodeName);
	System::UnicodeString __fastcall GetVersion(void);
	void __fastcall SetVersion(const System::UnicodeString Value);
	void __fastcall SetLatitude(const double Value);
	void __fastcall SetLongitude(const double Value);
	void __fastcall SetLanguage(const Fmx::Tmswebgmapscommon::TLanguageName Value);
	
protected:
	virtual int __fastcall GetVersionNr(void);
	System::UnicodeString __fastcall SetCoord(double d);
	
public:
	__fastcall virtual ~TTMSFMXWebGMapsReverseGeocoding(void);
	__fastcall virtual TTMSFMXWebGMapsReverseGeocoding(System::Classes::TComponent* AOwner);
	Fmx::Tmswebgmapscommon::TGeocodingResult __fastcall LaunchReverseGeocoding(void);
	
__published:
	__property System::UnicodeString APIKey = {read=FAPIKey, write=FAPIKey};
	__property TWebGMapsAddress* ResultAddress = {read=FResultAddress};
	__property Fmx::Tmswebgmapscommon::TLanguageName Language = {read=FLanguage, write=SetLanguage, default=0};
	__property double Latitude = {read=FLatitude, write=SetLatitude};
	__property double Longitude = {read=FLongitude, write=SetLongitude};
	__property System::UnicodeString Version = {read=GetVersion, write=SetVersion};
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 MAJ_VER = System::Int8(0x1);
static const System::Int8 MIN_VER = System::Int8(0x0);
static const System::Int8 REL_VER = System::Int8(0x3);
static const System::Int8 BLD_VER = System::Int8(0x0);
}	/* namespace Tmswebgmapsreversegeocoding */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSWEBGMAPSREVERSEGEOCODING)
using namespace Fmx::Tmswebgmapsreversegeocoding;
#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_TmswebgmapsreversegeocodingHPP
