27 #include "../../../dataaccess/dataset/DataSet.h" 28 #include "../../../dataaccess/utils/Utils.h" 29 #include "../../../maptools/Chart.h" 34 #include <boost/lexical_cast.hpp> 43 m_brush.setStyle(Qt::SolidPattern);
53 QImage* result =
nullptr;
58 result =
drawPies(chart, dataset, width);
62 result =
drawBars(chart, dataset, width);
78 QImage* result =
nullptr;
83 result =
drawPies(chart, chartValue, width);
87 result =
drawBars(chart, chartValue, width);
102 m_painter.setRenderHints(QPainter::Antialiasing);
115 QImage* img =
new QImage(static_cast<int>(chart->
getWidth()), static_cast<int>(chart->
getHeight()), QImage::Format_ARGB32_Premultiplied);
116 img->fill(Qt::transparent);
123 std::vector<double> values;
138 for(std::size_t i = 0; i < values.size(); ++i)
140 int currentAngle =
static_cast<int>((values[i] * 5760) / sum);
144 shadowColor.setAlpha(128);
146 QPen shadowPen(shadowColor);
147 shadowPen.setWidth(2);
149 m_painter.drawPie(img->rect(), lastAngle, currentAngle);
155 m_painter.drawPie(img->rect(), lastAngle, currentAngle);
157 lastAngle += currentAngle;
167 const std::map<std::string, double>& chartValue, std::size_t& )
170 QImage* img =
new QImage(static_cast<int>(chart->
getWidth()), static_cast<int>(chart->
getHeight()), QImage::Format_ARGB32_Premultiplied);
171 img->fill(Qt::transparent);
178 std::vector<double> values;
193 for(std::size_t i = 0; i < values.size(); ++i)
195 int currentAngle =
static_cast<int>((values[i] * 5760) / sum);
199 shadowColor.setAlpha(128);
201 QPen shadowPen(shadowColor);
202 shadowPen.setWidth(2);
204 m_painter.drawPie(img->rect(), lastAngle, currentAngle);
210 m_painter.drawPie(img->rect(), lastAngle, currentAngle);
212 lastAngle += currentAngle;
225 QImage* img =
new QImage(static_cast<int>(chart->
getWidth()), static_cast<int>(chart->
getHeight()), QImage::Format_ARGB32_Premultiplied);
226 img->fill(Qt::transparent);
234 std::vector<double> values;
246 assert(maxValue > 0.0);
250 int shadowOffset = 2;
253 for(std::size_t i = 0; i < values.size(); ++i)
255 int barHeight =
static_cast<int>((values[i] * chart->
getHeight()) / maxValue);
258 QRect shadowBar(lastx - shadowOffset, -shadowOffset, static_cast<int>(chart->
getBarWidth() + shadowOffset), barHeight + shadowOffset);
260 shadowColor.setAlpha(128);
267 QRect bar(lastx, 0, static_cast<int>(chart->
getBarWidth()), barHeight);
281 QImage* mirroed =
new QImage(img->mirrored());
290 const std::map<std::string, double>& chartValue, std::size_t& )
293 QImage* img =
new QImage(static_cast<int>(chart->
getWidth()), static_cast<int>(chart->
getHeight()), QImage::Format_ARGB32_Premultiplied);
294 img->fill(Qt::transparent);
302 std::vector<double> values;
314 assert(maxValue > 0.0);
318 int shadowOffset = 2;
321 for(std::size_t i = 0; i < values.size(); ++i)
323 int barHeight =
static_cast<int>((values[i] * chart->
getHeight()) / maxValue);
326 QRect shadowBar(lastx - shadowOffset, -shadowOffset, static_cast<int>(chart->
getBarWidth() + shadowOffset), barHeight + shadowOffset);
328 shadowColor.setAlpha(128);
335 QRect bar(lastx, 0, static_cast<int>(chart->
getBarWidth()), barHeight);
349 QImage* mirroed =
new QImage(img->mirrored());
358 const std::vector<std::string>& properties = chart->
getProperties();
359 size_t psize = properties.size();
361 for(std::size_t i = 0; i < psize; ++i)
375 std::map<std::string, double>::const_iterator it;
376 const std::vector<std::string>& properties = chart->
getProperties();
377 for(std::size_t i = 0; i < properties.size(); ++i)
379 it = chartValue.find(properties[i]);
380 if(it != chartValue.end())
381 values.push_back(it->second);
394 for(std::size_t i = 0; i < values.size(); ++i)
404 for(std::size_t i = 0; i < values.size(); ++i)
405 if(std::abs(values[i]) > max)
ChartType getType() const
const std::vector< std::string > & getProperties() const
std::size_t getBarWidth() const
TEDATAACCESSEXPORT std::size_t GetPropertyPos(const DataSet *dataset, const std::string &name)
TEDATAACCESSEXPORT double GetValueAsDouble(const te::da::DataSet *ds, const size_t pos)
It gets the value as double.
double getMaxValue() const
A concrete chart renderer based on Qt4.
const te::color::RGBAColor & getColor(std::size_t i) const
This class represents the informations needed to build map charts.
std::size_t getHeight() const
A dataset is the unit of information manipulated by the data access module of TerraLib.
std::size_t getContourWidth() const
const te::color::RGBAColor & getContourColor() const
const std::vector< size_t > & getPropertiesPos() const
A helper class for 32-bit RGBA (Red-Green-Blue-Alpha channel) color.
std::size_t getWidth() const