⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bulkloader.h

📁 一个非常好的GIS开源新版本
💻 H
字号:
// Spatial Index Library//// Copyright (C) 2002 Navel Ltd.//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public// License as published by the Free Software Foundation; either// version 2.1 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA////  Email://    mhadji@gmail.com#ifndef __spatialindex_rtree_bulk_loader_h#define __spatialindex_rtree_bulk_loader_h#ifdef _MSC_VER// tell MSVC not to complain about exception declarations#pragma warning(push)#pragma warning(disable:4290)#endifnamespace SpatialIndex{	namespace RTree	{		class BulkLoadSource : public Tools::IObjectStream		{		public:			BulkLoadSource(				Tools::SmartPointer<IObjectStream> spSstream,				unsigned long howMany);			BulkLoadSource(IObjectStream* pStream, unsigned long howMany);			BulkLoadSource(IObjectStream* pStream);			virtual ~BulkLoadSource();			virtual Tools::IObject* getNext();			virtual bool hasNext() throw ();			virtual unsigned long size() throw (Tools::NotSupportedException);			virtual void rewind() throw (Tools::NotSupportedException);			Tools::SmartPointer<IObjectStream> m_spDataSource;			unsigned long m_cHowMany;		}; // BulkLoadSource		class BulkLoadComparator : public Tools::IObjectComparator		{		public:			BulkLoadComparator(unsigned long d);			virtual ~BulkLoadComparator();			virtual int compare(Tools::IObject* o1, Tools::IObject* o2);			unsigned long m_compareDimension;		};		class BulkLoader		{		public:			void bulkLoadUsingSTR(				RTree* pTree,				IDataStream& stream,				unsigned long bindex,				unsigned long bleaf,				unsigned long bufferSize);		protected:			class TmpFile : public IDataStream			{			public:				TmpFile();				virtual ~TmpFile();				void storeRecord(Region& r, long id);				void loadRecord(Region& r, long& id);				virtual IData* getNext();				virtual bool hasNext() throw ();				virtual unsigned long size()					throw (Tools::NotSupportedException);				virtual void rewind();				Tools::TemporaryFile m_tmpFile;				IData* m_pNext;			};			void createLevel(				RTree* pTree,				Tools::IObjectStream& es,				unsigned long dimension,				unsigned long k,				unsigned long b,				unsigned long level,				unsigned long bufferSize,				TmpFile& tmpFile,				unsigned long& numberOfNodes,				unsigned long& totalData);			Node* createNode(				RTree* pTree,				std::vector<Tools::SmartPointer<IData> >& e,				unsigned long level);			friend class BulkLoadSource;		};	}}#ifdef _MSC_VER#pragma warning(pop)#endif#endif /* __spatialindex_rtree_bulk_loader_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -