From cc0e0ed8dc285db6f0fb3a30870700c5d8ffbf03 Mon Sep 17 00:00:00 2001 From: Howard Butler Date: Mon, 26 Nov 2012 13:21:34 -0600 Subject: [PATCH] don't write extra commas at end of properties list for GeoJSON/csv to account for ignored dimensions --- src/drivers/text/Writer.cpp | 18 ++++++++---------- test/data/pipeline/pipeline_geojson.xml | 19 ++++++++++++++++--- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/drivers/text/Writer.cpp b/src/drivers/text/Writer.cpp index fc86067e6e..932a83b716 100644 --- a/src/drivers/text/Writer.cpp +++ b/src/drivers/text/Writer.cpp @@ -549,23 +549,22 @@ void Writer::WriteCSVBuffer(const PointBuffer& data) { std::vector >::const_iterator iter = dimensions.begin(); - bool bWroteProperty(false); + bool bFirstProperty(true); while (iter != dimensions.end()) { - if (bWroteProperty) + if (!bFirstProperty) *m_stream << delimiter; Dimension const& d = schema.getDimension(iter->get<0>(), iter->get<1>()); if (d.isIgnored()) { iter++; - bWroteProperty = false; continue; } *m_stream << getStringRepresentation(data, d, pointIndex); - bWroteProperty = true; + bFirstProperty = false; iter++; } @@ -669,27 +668,26 @@ void Writer::WriteGeoJSONBuffer(const PointBuffer& data) std::vector > dimensions = getDimensionOrder(schema); std::vector >::const_iterator iter = dimensions.begin(); - bool bWroteProperty(false); + bool bFirstProperty(true); while (iter != dimensions.end()) { - if (bWroteProperty) - *m_stream << ","; - Dimension const& d = schema.getDimension(iter->get<0>(), iter->get<1>()); if (d.isIgnored()) { iter++; - bWroteProperty = false; continue; } + if (!bFirstProperty) + *m_stream << ","; + *m_stream << "\"" << iter->get<0>() << "\":"; *m_stream << "\"" << getStringRepresentation(data, d, pointIndex) <<"\""; iter++; - bWroteProperty = true; + bFirstProperty = false; } diff --git a/test/data/pipeline/pipeline_geojson.xml b/test/data/pipeline/pipeline_geojson.xml index 43706937b9..b66946f273 100644 --- a/test/data/pipeline/pipeline_geojson.xml +++ b/test/data/pipeline/pipeline_geojson.xml @@ -19,19 +19,32 @@ - + + - +