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

📄 wkbreader.h

📁 在Linux下做的QuadTree的程序
💻 H
字号:
/********************************************************************** * $Id: WKBReader.h 1820 2006-09-06 16:54:23Z mloskot $ * * GEOS - Geometry Engine Open Source * http://geos.refractions.net * * Copyright (C) 2005-2006 Refractions Research Inc. * Copyright (C) 2001-2002 Vivid Solutions Inc. * * This is free software; you can redistribute and/or modify it under * the terms of the GNU Lesser General Public Licence as published * by the Free Software Foundation.  * See the COPYING file for more information. * **********************************************************************/#ifndef GEOS_IO_WKBREADER_H#define GEOS_IO_WKBREADER_H#include <geos/geom/GeometryFactory.h>#include <geos/io/ByteOrderDataInStream.h> // for composition#include <iosfwd> // ostream, istream#include <vector>// Forward declarationsnamespace geos {	namespace geom {		//class GeometryFactory;		class Coordinate;		class Geometry;		class GeometryCollection;		class Point;		class LineString;		class LinearRing;		class Polygon;		class MultiPoint;		class MultiLineString;		class MultiPolygon;		class PrecisionModel;	} // namespace geom} // namespace geosnamespace geos {namespace io {/** * \class WKBReader io.h geos.h * * \brief Reads a Geometry from Well-Known Binary format. * * This class is designed to support reuse of a single instance to read * multiple geometries. This class is not thread-safe; each thread should * create its own instance. * * The Well-known Binary format is defined in the <A * HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features * Specification for SQL</A>. * This implementation supports the extended WKB standard which allows * representing 3-dimensional coordinates. * */class WKBReader {public:	WKBReader(geom::GeometryFactory const& f): factory(f) {};	/// Inizialize parser with default GeometryFactory.	WKBReader();	/**	 * \brief Reads a Geometry from an istream.	 *	 * @param is the stream to read from 	 * @return the Geometry read	 * @throws IOException	 * @throws ParseException	 */	geom::Geometry* read(std::istream &is);		// throws IOException, ParseException	/**	 * \brief Reads a Geometry from an istream in hex format.	 *	 * @param is the stream to read from 	 * @return the Geometry read	 * @throws IOException	 * @throws ParseException	 */	geom::Geometry *readHEX(std::istream &is);		// throws IOException, ParseException	/**	 * \brief Print WKB in HEX form to out stream	 *	 * @param is is the stream to read from	 * @param os is the stream to write to	 */	static std::ostream &printHEX(std::istream &is, std::ostream &os); private:	static std::string BAD_GEOM_TYPE_MSG;	const geom::GeometryFactory &factory;	// for now support the WKB standard only - may be generalized later	unsigned int inputDimension;	ByteOrderDataInStream dis;	std::vector<double> ordValues;	geom::Geometry *readGeometry();		// throws IOException, ParseException	geom::Point *readPoint();		// throws IOException	geom::LineString *readLineString();		// throws IOException	geom::LinearRing *readLinearRing();		// throws IOException	geom::Polygon *readPolygon();		// throws IOException	geom::MultiPoint *readMultiPoint();		// throws IOException, ParseException	geom::MultiLineString *readMultiLineString();		// throws IOException, ParseException	geom::MultiPolygon *readMultiPolygon();		// throws IOException, ParseException	geom::GeometryCollection *readGeometryCollection();		// throws IOException, ParseException	geom::CoordinateSequence *readCoordinateSequence(int); // throws IOException	void readCoordinate(); // throws IOException};} // namespace io} // namespace geos#endif // #ifndef GEOS_IO_WKBREADER_H/********************************************************************** * $Log$ * Revision 1.3  2006/06/01 11:49:36  strk * Reduced installed headers form geomgraph namespace * * Revision 1.2  2006/04/12 10:57:19  strk * Added WKBReader default ctor using default GeometryFactory instance * * Revision 1.1  2006/03/20 18:18:14  strk * io.h header split * **********************************************************************/

⌨️ 快捷键说明

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