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

📄 wkbwriter.h

📁 在Linux下做的QuadTree的程序
💻 H
字号:
/********************************************************************** * $Id: WKBWriter.h 2032 2007-11-23 02:33:41Z 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_WKBWRITER_H#define GEOS_IO_WKBWRITER_H#include <geos/platform.h> // for getMachineByteOrder#include <iosfwd>// Forward declarationsnamespace geos {	namespace geom {		class CoordinateSequence;		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 WKBWriter io.h geos.h * * \brief Writes a Geometry into Well-Known Binary format. * * The WKB format is specified in the OGC Simple Features for SQL specification. * This implementation supports the extended WKB standard for representing * 3-dimensional coordinates.  The presence of 3D coordinates is signified * by setting the high bit of the wkbType word. * * Empty Points cannot be represented in WKB; an * IllegalArgumentException will be thrown if one is * written. The WKB specification does not support representing LinearRing * they will be written as LineString *  * 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. * * @see WKBReader */class WKBWriter {public:	WKBWriter(int dims=2, int bo=getMachineByteOrder(), bool includeSRID=false);	/*	 * \brief	 * Returns the output dimension used by the	 * <code>WKBWriter</code>.	 */	virtual int getOutputDimension() const { return outputDimension; }	/*	 * Sets the output dimension used by the	 * <code>WKBWriter</code>.	 */	virtual void setOutputDimension(int newOutputDimension) { outputDimension=newOutputDimension; }		/*	 * \brief	 * Returns the byte order used by the	 * <code>WKBWriter</code>.	 */	virtual int getByteOrder() const { return byteOrder; }	/*	 * Sets the byte order used by the	 * <code>WKBWriter</code>.	 */	virtual void setByteOrder(int newByteOrder) { byteOrder=newByteOrder; }	/*	 * \brief	 * Returns whether SRID values are output by the	 * <code>WKBWriter</code>.	 */	virtual int getIncludeSRID() const { return includeSRID; }	/*	 * Sets whether SRID values should be output by the	 * <code>WKBWriter</code>.	 */	virtual void setIncludeSRID(int newIncludeSRID) { includeSRID=static_cast<bool>(newIncludeSRID); }	/**	 * \brief Write a Geometry to an ostream.	 *	 * @param g the geometry to write	 * @param os the output stream	 * @throws IOException	 */	void write(const geom::Geometry &g, std::ostream &os);		// throws IOException, ParseException	/**	 * \brief Write a Geometry to an ostream in binary hex format.	 *	 * @param g the geometry to write	 * @param os the output stream	 * @throws IOException	 */	void writeHEX(const geom::Geometry &g, std::ostream &os);		// throws IOException, ParseExceptionprivate:	int outputDimension;	int byteOrder;		bool includeSRID;	std::ostream *outStream;	unsigned char buf[8];	void writePoint(const geom::Point &p);		// throws IOException	void writeLineString(const geom::LineString &ls);		// throws IOException	void writePolygon(const geom::Polygon &p);		// throws IOException	void writeGeometryCollection(const geom::GeometryCollection &c, int wkbtype);		// throws IOException, ParseException	void writeCoordinateSequence(const geom::CoordinateSequence &cs, bool sized);		// throws IOException	void writeCoordinate(const geom::CoordinateSequence &cs, int idx, bool is3d);		// throws IOException	void writeGeometryType(int geometryType, int SRID);		// throws IOException	void writeSRID(int SRID);		// throws IOException	void writeByteOrder();		// throws IOException	void writeInt(int intValue);		// throws IOException};} // namespace io} // namespace geos#endif // #ifndef GEOS_IO_WKBWRITER_H/********************************************************************** * $Log$ * Revision 1.2  2006/03/28 11:26:13  strk * ByteOrderDataInStream inlines moved to .inl file, updated * implementation files includes. * * Revision 1.1  2006/03/20 18:18:14  strk * io.h header split * **********************************************************************/

⌨️ 快捷键说明

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