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

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

#ifndef Fmx_UecgeohashHPP
#define Fmx_UecgeohashHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#endif
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.SysUtils.hpp>
#include <System.Types.hpp>
#include <System.UITypes.hpp>
#include <System.Rtti.hpp>
#include <System.Classes.hpp>
#include <System.StrUtils.hpp>
#include <System.SyncObjs.hpp>
#include <System.UIConsts.hpp>
#include <System.Math.hpp>
#include <System.Generics.Collections.hpp>
#include <System.Generics.Defaults.hpp>
#include <System.Math.Vectors.hpp>
#include <FMX.uecMapUtil.hpp>
#include <FMX.Types.hpp>

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

namespace Fmx
{
namespace Uecgeohash
{
//-- forward type declarations -----------------------------------------------
struct TCardinalGeoHash;
//-- type declarations -------------------------------------------------------
struct DECLSPEC_DRECORD TCardinalGeoHash
{
public:
	System::UnicodeString North;
	System::UnicodeString NorthEast;
	System::UnicodeString East;
	System::UnicodeString SouthEast;
	System::UnicodeString South;
	System::UnicodeString SouthWest;
	System::UnicodeString West;
	System::UnicodeString NorthWest;
};


enum DECLSPEC_DENUM TGeoDirection : unsigned char { North, East, South, West };

//-- var, const, procedure ---------------------------------------------------
extern DELPHI_PACKAGE void __fastcall decodeGeoHash(const System::UnicodeString geohash, double &latitude, double &longitude);
extern DELPHI_PACKAGE System::UnicodeString __fastcall encodeGeoHash(const double latitude, const double longitude, const int precision = 0xc);
extern DELPHI_PACKAGE TCardinalGeoHash __fastcall CardinalGeoHash(const System::UnicodeString geohash);
}	/* namespace Uecgeohash */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_UECGEOHASH)
using namespace Fmx::Uecgeohash;
#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_UecgeohashHPP
