20 #ifndef GEOS_IO_WKTREADER_H 21 #define GEOS_IO_WKTREADER_H 23 #include <geos/export.h> 25 #include <geos/geom/GeometryFactory.h> 26 #include <geos/geom/CoordinateSequence.h> 27 #include <geos/geom/Geometry.h> 28 #include <geos/io/ParseException.h> 34 class StringTokenizer;
39 class GeometryCollection;
45 class MultiLineString;
86 std::unique_ptr<T>
read(
const std::string& wkt)
const {
88 auto gt =
dynamic_cast<const T*
>(g.get());
93 return std::unique_ptr<T>(
static_cast<T*
>(g.release()));
96 std::unique_ptr<geom::Geometry> read(
const std::string& wellKnownText)
const;
101 std::unique_ptr<geom::CoordinateSequence> getCoordinates(io::StringTokenizer* tokenizer)
const;
102 static double getNextNumber(io::StringTokenizer* tokenizer);
103 static std::string getNextEmptyOrOpener(io::StringTokenizer* tokenizer, std::size_t& dim);
104 static std::string getNextCloserOrComma(io::StringTokenizer* tokenizer);
105 static std::string getNextCloser(io::StringTokenizer* tokenizer);
106 static std::string getNextWord(io::StringTokenizer* tokenizer);
107 std::unique_ptr<geom::Geometry> readGeometryTaggedText(io::StringTokenizer* tokenizer)
const;
108 std::unique_ptr<geom::Point> readPointText(io::StringTokenizer* tokenizer)
const;
109 std::unique_ptr<geom::LineString> readLineStringText(io::StringTokenizer* tokenizer)
const;
110 std::unique_ptr<geom::LinearRing> readLinearRingText(io::StringTokenizer* tokenizer)
const;
111 std::unique_ptr<geom::MultiPoint> readMultiPointText(io::StringTokenizer* tokenizer)
const;
112 std::unique_ptr<geom::Polygon> readPolygonText(io::StringTokenizer* tokenizer)
const;
113 std::unique_ptr<geom::MultiLineString> readMultiLineStringText(io::StringTokenizer* tokenizer)
const;
114 std::unique_ptr<geom::MultiPolygon> readMultiPolygonText(io::StringTokenizer* tokenizer)
const;
115 std::unique_ptr<geom::GeometryCollection> readGeometryCollectionText(io::StringTokenizer* tokenizer)
const;
120 void getPreciseCoordinate(io::StringTokenizer* tokenizer,
geom::Coordinate&, std::size_t& dim)
const;
122 static bool isNumberNext(io::StringTokenizer* tokenizer);
129 # include <geos/io/WKTReader.inl> 132 #endif // #ifndef GEOS_IO_WKTREADER_H std::unique_ptr< T > read(const std::string &wkt) const
Parse a WKT string returning a Geometry.
Definition: WKTReader.h:86
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
WKT parser class; see also WKTWriter.
Definition: WKTReader.h:59
Specifies the precision model of the Coordinate in a Geometry.
Definition: PrecisionModel.h:87
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:68
Notifies a parsing error.
Definition: ParseException.h:34
Basic namespace for all GEOS functionalities.
Definition: Angle.h:26