コード例 #1
0
ファイル: WKTWriter.cpp プロジェクト: asapnet/geos
void
WKTWriter::appendLineStringTaggedText(const LineString *lineString, int level,
		Writer *writer)
{
	writer->write("LINESTRING ");
	appendLineStringText(lineString, level, false, writer);
}
コード例 #2
0
ファイル: WKTWriter.cpp プロジェクト: libgeos/libgeos
void
WKTWriter::appendMultiLineStringText(const MultiLineString* multiLineString, int p_level, bool indentFirst,
                                     Writer* writer)
{
    if(multiLineString->isEmpty()) {
        writer->write("EMPTY");
    }
    else {
        int level2 = p_level;
        bool doIndent = indentFirst;
        writer->write("(");
        for(size_t i = 0, n = multiLineString->getNumGeometries();
                i < n; ++i) {
            if(i > 0) {
                writer->write(", ");
                level2 = p_level + 1;
                doIndent = true;
            }
            const LineString* ls = dynamic_cast<const LineString*>(
                                       multiLineString->getGeometryN(i)
                                   );
            appendLineStringText(ls, level2, doIndent, writer);
        }
        writer->write(")");
    }
}
コード例 #3
0
ファイル: WKTWriter.cpp プロジェクト: libgeos/libgeos
/*
 * Converts a <code>LinearRing</code> to &lt;LinearRing Tagged Text&gt;
 * format, then appends it to the writer.
 *
 * @param  linearRing  the <code>LinearRing</code> to process
 * @param  writer      the output writer to append to
 */
void
WKTWriter::appendLinearRingTaggedText(const LinearRing* linearRing, int p_level, Writer* writer)
{
    writer->write("LINEARRING ");
    if(outputDimension == 3 && !old3D && !linearRing->isEmpty()) {
        writer->write("Z ");
    }
    appendLineStringText((LineString*)linearRing, p_level, false, writer);
}
コード例 #4
0
ファイル: WKTWriter.cpp プロジェクト: asapnet/geos
void
WKTWriter::appendPolygonText(const Polygon *polygon, int /*level*/,
		bool indentFirst, Writer *writer)
{
	if (polygon->isEmpty()) {
		writer->write("EMPTY");
	} else {
		if (indentFirst) indent(level, writer);
		writer->write("(");
		appendLineStringText(polygon->getExteriorRing(), level, false, writer);
		for (size_t i=0, n=polygon->getNumInteriorRing(); i<n; ++i)
		{
			writer->write(", ");
			const LineString *ls=polygon->getInteriorRingN(i);
			appendLineStringText(ls, level + 1, true, writer);
		}
		writer->write(")");
	}
}
コード例 #5
0
ファイル: WKTWriter.cpp プロジェクト: drownedout/datamap
void
WKTWriter::appendLineStringTaggedText(const LineString *lineString, int level,
		Writer *writer)
{
	writer->write("LINESTRING ");
    if( outputDimension == 3 && !old3D && !lineString->isEmpty() )
        writer->write( "Z " );

	appendLineStringText(lineString, level, false, writer);
}
コード例 #6
0
ファイル: WKTWriter.cpp プロジェクト: asapnet/geos
void WKTWriter::appendMultiLineStringText(const MultiLineString *multiLineString, int level, bool indentFirst,
											Writer *writer) {
	if (multiLineString->isEmpty()) {
		writer->write("EMPTY");
	} else {
		int level2=level;
		bool doIndent=indentFirst;
		writer->write("(");
		for (unsigned int i=0, n=multiLineString->getNumGeometries();
				i<n; i++)
		{
			if (i>0) {
				writer->write(", ");
				level2=level+1;
				doIndent=true;
			}
			appendLineStringText((LineString *) multiLineString->getGeometryN(i), level2, doIndent, writer);
		}
		writer->write(")");
	}
}