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

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

#ifndef Fmx_UecmapgeojsonparserHPP
#define Fmx_UecmapgeojsonparserHPP

#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.SyncObjs.hpp>
#include <System.UIConsts.hpp>
#include <FMX.uecMapUtil.hpp>
#include <FMX.ectJSON.hpp>

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

namespace Fmx
{
namespace Uecmapgeojsonparser
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TECMapGeoJsonParser;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TGeoJSONEtat : unsigned char { gjeNone, gjeType, gjeCoordinates, gjeProperties, gjeBbox };

enum DECLSPEC_DENUM TTypePolygon : unsigned char { tpNormal, tpCircle, tpRectangle };

enum DECLSPEC_DENUM TGeoJSONObject : unsigned char { gjoNone, gjoPoint, gjoMultiPoint, gjoLineString, gjoMultiLineString, gjoPolygon, gjoMultiPolygon, gjoGeometryCollection, gjoFeature, gjoFeatureCollection };

#pragma pack(push,4)
class PASCALIMPLEMENTATION TECMapGeoJsonParser : public Fmx::Ectjson::TSAJ
{
	typedef Fmx::Ectjson::TSAJ inherited;
	
private:
	System::Classes::TStringList* Fitems;
	int FidxCoord;
	int FOpenArray;
	System::UnicodeString FLng;
	System::UnicodeString FMap;
	System::UnicodeString FMarkers;
	System::UnicodeString FPolylines;
	System::UnicodeString FBackupPolygones;
	System::UnicodeString FPolygones;
	System::UnicodeString FCircles;
	System::UnicodeString FRectangles;
	System::UnicodeString FDefaut;
	System::UnicodeString FProperties;
	TGeoJSONObject gjoObject;
	TGeoJSONEtat gjeEtat;
	TTypePolygon FTypePolygon;
	TGeoJSONObject __fastcall getGeoObject(const System::UnicodeString name);
	TGeoJSONEtat __fastcall getGeoEtat(const System::UnicodeString name);
	System::UnicodeString __fastcall getECMapValue();
	
public:
	virtual void __fastcall StartElement(System::UnicodeString Name);
	virtual void __fastcall SetElementValue(System::UnicodeString Value);
	virtual void __fastcall EndElement();
	__fastcall virtual TECMapGeoJsonParser();
	__fastcall virtual ~TECMapGeoJsonParser();
	__property System::UnicodeString ECMapValue = {read=getECMapValue};
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
extern DELPHI_PACKAGE System::UnicodeString __fastcall GeoJSONtoECMAP(const System::UnicodeString geoJSONValue);
}	/* namespace Uecmapgeojsonparser */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_UECMAPGEOJSONPARSER)
using namespace Fmx::Uecmapgeojsonparser;
#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_UecmapgeojsonparserHPP
