public class WKTWriter
extends java.lang.Object
Geometry.
The Well-Known Text format is defined in the
OGC
Simple Features Specification for SQL.
See WKTReader for a formal specification of the format syntax.
The WKTWriter outputs coordinates rounded to the precision
model. Only the maximum number of decimal places
necessary to represent the ordinates to the required precision will be
output.
The SFS WKT spec does not define a special tag for LinearRings.
Under the spec, rings are output as LINESTRINGs.
In order to allow precisely specifying constructed geometries,
JTS also supports a non-standard LINEARRING tag which is used
to output LinearRings.
WKTReader| Modifier and Type | Field and Description |
|---|---|
private int |
coordsPerLine |
private java.text.DecimalFormat |
formatter |
private static int |
INDENT |
private java.lang.String |
indentTabStr |
private boolean |
isFormatted |
private int |
level |
private int |
outputDimension |
private boolean |
useFormatting |
| Constructor and Description |
|---|
WKTWriter()
Creates a new WKTWriter with default settings
|
WKTWriter(int outputDimension)
Creates a writer that writes
Geometrys with
the given output dimension (2 or 3). |
| Modifier and Type | Method and Description |
|---|---|
private void |
appendCoordinate(CoordinateSequence seq,
int i,
java.io.Writer writer)
Appends the i'th coordinate from the sequence to the writer
|
private void |
appendCoordinate(Coordinate coordinate,
java.io.Writer writer)
Converts a
Coordinate to <Point> format,
then appends it to the writer. |
private void |
appendGeometryCollectionTaggedText(GeometryCollection geometryCollection,
int level,
java.io.Writer writer)
Converts a
GeometryCollection to <GeometryCollection
Tagged Text> format, then appends it to the writer. |
private void |
appendGeometryCollectionText(GeometryCollection geometryCollection,
int level,
java.io.Writer writer)
Converts a
GeometryCollection to <GeometryCollectionText>
format, then appends it to the writer. |
private void |
appendGeometryTaggedText(Geometry geometry,
int level,
java.io.Writer writer)
Converts a
Geometry to <Geometry Tagged Text> format,
then appends it to the writer. |
private void |
appendLinearRingTaggedText(LinearRing linearRing,
int level,
java.io.Writer writer)
Converts a
LinearRing to <LinearRing Tagged Text>
format, then appends it to the writer. |
private void |
appendLineStringTaggedText(LineString lineString,
int level,
java.io.Writer writer)
Converts a
LineString to <LineString Tagged Text>
format, then appends it to the writer. |
private void |
appendLineStringText(LineString lineString,
int level,
boolean doIndent,
java.io.Writer writer)
Converts a
LineString to <LineString Text> format, then
appends it to the writer. |
private void |
appendMultiLineStringTaggedText(MultiLineString multiLineString,
int level,
java.io.Writer writer)
Converts a
MultiLineString to <MultiLineString Tagged
Text> format, then appends it to the writer. |
private void |
appendMultiLineStringText(MultiLineString multiLineString,
int level,
boolean indentFirst,
java.io.Writer writer)
Converts a
MultiLineString to <MultiLineString Text>
format, then appends it to the writer. |
private void |
appendMultiPointTaggedText(MultiPoint multipoint,
int level,
java.io.Writer writer)
Converts a
MultiPoint to <MultiPoint Tagged Text>
format, then appends it to the writer. |
private void |
appendMultiPointText(MultiPoint multiPoint,
int level,
java.io.Writer writer)
Converts a
MultiPoint to <MultiPoint Text> format, then
appends it to the writer. |
private void |
appendMultiPolygonTaggedText(MultiPolygon multiPolygon,
int level,
java.io.Writer writer)
Converts a
MultiPolygon to <MultiPolygon Tagged Text>
format, then appends it to the writer. |
private void |
appendMultiPolygonText(MultiPolygon multiPolygon,
int level,
java.io.Writer writer)
Converts a
MultiPolygon to <MultiPolygon Text> format,
then appends it to the writer. |
private void |
appendPointTaggedText(Coordinate coordinate,
int level,
java.io.Writer writer,
PrecisionModel precisionModel)
Converts a
Coordinate to <Point Tagged Text> format,
then appends it to the writer. |
private void |
appendPointText(Coordinate coordinate,
int level,
java.io.Writer writer,
PrecisionModel precisionModel)
Converts a
Coordinate to <Point Text> format, then
appends it to the writer. |
private void |
appendPolygonTaggedText(Polygon polygon,
int level,
java.io.Writer writer)
Converts a
Polygon to <Polygon Tagged Text> format,
then appends it to the writer. |
private void |
appendPolygonText(Polygon polygon,
int level,
boolean indentFirst,
java.io.Writer writer)
Converts a
Polygon to <Polygon Text> format, then
appends it to the writer. |
private void |
appendSequenceText(CoordinateSequence seq,
int level,
boolean doIndent,
java.io.Writer writer)
Converts a
LineString to <LineString Text> format, then
appends it to the writer. |
private static java.text.DecimalFormat |
createFormatter(PrecisionModel precisionModel)
Creates the
DecimalFormat used to write doubles
with a sufficient number of decimal places. |
private void |
indent(int level,
java.io.Writer writer) |
private void |
indentCoords(int coordIndex,
int level,
java.io.Writer writer) |
void |
setFormatted(boolean isFormatted)
Sets whether the output will be formatted.
|
void |
setMaxCoordinatesPerLine(int coordsPerLine)
Sets the maximum number of coordinates per line
written in formatted output.
|
void |
setTab(int size)
Sets the tab size to use for indenting.
|
static java.lang.String |
stringOfChar(char ch,
int count)
Returns a
String of repeated characters. |
static java.lang.String |
toLineString(Coordinate[] coord)
Generates the WKT for a LINESTRING
specified by a
CoordinateSequence. |
static java.lang.String |
toLineString(Coordinate p0,
Coordinate p1)
Generates the WKT for a LINESTRING
specified by two
Coordinates. |
static java.lang.String |
toLineString(CoordinateSequence seq)
Generates the WKT for a LINESTRING
specified by a
CoordinateSequence. |
static java.lang.String |
toPoint(Coordinate p0)
Generates the WKT for a POINT
specified by a
Coordinate. |
java.lang.String |
write(Geometry geometry)
Converts a
Geometry to its Well-known Text representation. |
void |
write(Geometry geometry,
java.io.Writer writer)
Converts a
Geometry to its Well-known Text representation. |
java.lang.String |
writeFormatted(Geometry geometry)
Same as
write, but with newlines and spaces to make the
well-known text more readable. |
private void |
writeFormatted(Geometry geometry,
boolean useFormatting,
java.io.Writer writer)
Converts a
Geometry to its Well-known Text representation. |
void |
writeFormatted(Geometry geometry,
java.io.Writer writer)
Same as
write, but with newlines and spaces to make the
well-known text more readable. |
private java.lang.String |
writeNumber(double d)
Converts a
double to a String, not in scientific
notation. |
private static final int INDENT
private int outputDimension
private java.text.DecimalFormat formatter
private boolean isFormatted
private boolean useFormatting
private int level
private int coordsPerLine
private java.lang.String indentTabStr
public WKTWriter()
public WKTWriter(int outputDimension)
Geometrys with
the given output dimension (2 or 3).
If the specified output dimension is 3, the Z value
of coordinates will be written if it is present
(i.e. if it is not Double.NaN).outputDimension - the coordinate dimension to output (2 or 3)public static java.lang.String toPoint(Coordinate p0)
Coordinate.p0 - the point coordinatepublic static java.lang.String toLineString(CoordinateSequence seq)
CoordinateSequence.seq - the sequence to writepublic static java.lang.String toLineString(Coordinate[] coord)
CoordinateSequence.coord - the sequence to writepublic static java.lang.String toLineString(Coordinate p0, Coordinate p1)
Coordinates.p0 - the first coordinatep1 - the second coordinateprivate static java.text.DecimalFormat createFormatter(PrecisionModel precisionModel)
DecimalFormat used to write doubles
with a sufficient number of decimal places.precisionModel - the PrecisionModel used to determine
the number of decimal places to write.DecimalFormat that write double
s without scientific notation.public static java.lang.String stringOfChar(char ch,
int count)
String of repeated characters.ch - the character to repeatcount - the number of times to repeat the characterString of characterspublic void setFormatted(boolean isFormatted)
isFormatted - true if the output is to be formattedpublic void setMaxCoordinatesPerLine(int coordsPerLine)
coordsPerLine - the number of coordinates per line to output.public void setTab(int size)
size - the number of spaces to use as the tab stringjava.lang.IllegalArgumentException - if the size is non-positivepublic java.lang.String write(Geometry geometry)
Geometry to its Well-known Text representation.geometry - a Geometry to processpublic void write(Geometry geometry, java.io.Writer writer) throws java.io.IOException
Geometry to its Well-known Text representation.geometry - a Geometry to processjava.io.IOExceptionpublic java.lang.String writeFormatted(Geometry geometry)
write, but with newlines and spaces to make the
well-known text more readable.geometry - a Geometry to processpublic void writeFormatted(Geometry geometry, java.io.Writer writer) throws java.io.IOException
write, but with newlines and spaces to make the
well-known text more readable.geometry - a Geometry to processjava.io.IOExceptionprivate void writeFormatted(Geometry geometry, boolean useFormatting, java.io.Writer writer) throws java.io.IOException
Geometry to its Well-known Text representation.geometry - a Geometry to processjava.io.IOExceptionprivate void appendGeometryTaggedText(Geometry geometry, int level, java.io.Writer writer) throws java.io.IOException
Geometry to <Geometry Tagged Text> format,
then appends it to the writer.geometry - the Geometry to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendPointTaggedText(Coordinate coordinate, int level, java.io.Writer writer, PrecisionModel precisionModel) throws java.io.IOException
Coordinate to <Point Tagged Text> format,
then appends it to the writer.coordinate - the Coordinate to processwriter - the output writer to append toprecisionModel - the PrecisionModel to use to convert
from a precise coordinate to an external coordinatejava.io.IOExceptionprivate void appendLineStringTaggedText(LineString lineString, int level, java.io.Writer writer) throws java.io.IOException
LineString to <LineString Tagged Text>
format, then appends it to the writer.lineString - the LineString to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendLinearRingTaggedText(LinearRing linearRing, int level, java.io.Writer writer) throws java.io.IOException
LinearRing to <LinearRing Tagged Text>
format, then appends it to the writer.linearRing - the LinearRing to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendPolygonTaggedText(Polygon polygon, int level, java.io.Writer writer) throws java.io.IOException
Polygon to <Polygon Tagged Text> format,
then appends it to the writer.polygon - the Polygon to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendMultiPointTaggedText(MultiPoint multipoint, int level, java.io.Writer writer) throws java.io.IOException
MultiPoint to <MultiPoint Tagged Text>
format, then appends it to the writer.multipoint - the MultiPoint to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendMultiLineStringTaggedText(MultiLineString multiLineString, int level, java.io.Writer writer) throws java.io.IOException
MultiLineString to <MultiLineString Tagged
Text> format, then appends it to the writer.multiLineString - the MultiLineString to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendMultiPolygonTaggedText(MultiPolygon multiPolygon, int level, java.io.Writer writer) throws java.io.IOException
MultiPolygon to <MultiPolygon Tagged Text>
format, then appends it to the writer.multiPolygon - the MultiPolygon to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendGeometryCollectionTaggedText(GeometryCollection geometryCollection, int level, java.io.Writer writer) throws java.io.IOException
GeometryCollection to <GeometryCollection
Tagged Text> format, then appends it to the writer.geometryCollection - the GeometryCollection to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendPointText(Coordinate coordinate, int level, java.io.Writer writer, PrecisionModel precisionModel) throws java.io.IOException
Coordinate to <Point Text> format, then
appends it to the writer.coordinate - the Coordinate to processwriter - the output writer to append toprecisionModel - the PrecisionModel to use to convert
from a precise coordinate to an external coordinatejava.io.IOExceptionprivate void appendCoordinate(CoordinateSequence seq, int i, java.io.Writer writer) throws java.io.IOException
seq - the CoordinateSequence to processi - the index of the coordinate to writewriter - the output writer to append tojava.io.IOExceptionprivate void appendCoordinate(Coordinate coordinate, java.io.Writer writer) throws java.io.IOException
Coordinate to <Point> format,
then appends it to the writer.coordinate - the Coordinate to processwriter - the output writer to append tojava.io.IOExceptionprivate java.lang.String writeNumber(double d)
double to a String, not in scientific
notation.d - the double to convertdouble as a String, not in
scientific notationprivate void appendSequenceText(CoordinateSequence seq, int level, boolean doIndent, java.io.Writer writer) throws java.io.IOException
LineString to <LineString Text> format, then
appends it to the writer.lineString - the LineString to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendLineStringText(LineString lineString, int level, boolean doIndent, java.io.Writer writer) throws java.io.IOException
LineString to <LineString Text> format, then
appends it to the writer.lineString - the LineString to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendPolygonText(Polygon polygon, int level, boolean indentFirst, java.io.Writer writer) throws java.io.IOException
Polygon to <Polygon Text> format, then
appends it to the writer.polygon - the Polygon to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendMultiPointText(MultiPoint multiPoint, int level, java.io.Writer writer) throws java.io.IOException
MultiPoint to <MultiPoint Text> format, then
appends it to the writer.multiPoint - the MultiPoint to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendMultiLineStringText(MultiLineString multiLineString, int level, boolean indentFirst, java.io.Writer writer) throws java.io.IOException
MultiLineString to <MultiLineString Text>
format, then appends it to the writer.multiLineString - the MultiLineString to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendMultiPolygonText(MultiPolygon multiPolygon, int level, java.io.Writer writer) throws java.io.IOException
MultiPolygon to <MultiPolygon Text> format,
then appends it to the writer.multiPolygon - the MultiPolygon to processwriter - the output writer to append tojava.io.IOExceptionprivate void appendGeometryCollectionText(GeometryCollection geometryCollection, int level, java.io.Writer writer) throws java.io.IOException
GeometryCollection to <GeometryCollectionText>
format, then appends it to the writer.geometryCollection - the GeometryCollection to processwriter - the output writer to append tojava.io.IOExceptionprivate void indentCoords(int coordIndex,
int level,
java.io.Writer writer)
throws java.io.IOException
java.io.IOExceptionprivate void indent(int level,
java.io.Writer writer)
throws java.io.IOException
java.io.IOException