27 #include "../../dataaccess/query/DataSetName.h"
28 #include "../../dataaccess/query/Field.h"
29 #include "../../dataaccess/query/Fields.h"
30 #include "../../dataaccess/query/From.h"
31 #include "../../dataaccess/query/FromItem.h"
32 #include "../../dataaccess/query/Select.h"
33 #include "../../dataaccess/query/SpatialQueryProcessor.h"
34 #include "../../dataaccess/query/Where.h"
35 #include "../../dataaccess/utils/Utils.h"
36 #include "../../datatype/DateTime.h"
37 #include "../../datatype/DateTimePeriod.h"
38 #include "../../maptools/Exception.h"
39 #include "../../maptools/RendererFactory.h"
40 #include "../core/observation/ObservationDataSet.h"
41 #include "../core/timeseries/TimeSeriesDataSetInfo.h"
42 #include "../core/timeseries/TimeSeriesDataSet.h"
43 #include "../loader/STDataLoader.h"
47 #include <boost/format.hpp>
64 const std::string& title, AbstractLayer* parent,
77 assert(!m_info->getObservationDataSetInfo().getDataSetName().empty());
81 return ds->getDataSetType(m_info->getObservationDataSetInfo().getDataSetName());
96 std::auto_ptr<te::da::DataSet> result = tds->release();
107 std::auto_ptr<te::da::DataSet> result = tsds->release();
118 std::auto_ptr<te::da::DataSet> result = tsds->release();
126 std::auto_ptr<te::da::DataSet> result;
134 std::auto_ptr<te::da::DataSet> result;
162 std::auto_ptr<te::da::DataSet> result = tds->release();
173 std::auto_ptr<te::da::DataSet> result = tds->release();
183 std::auto_ptr<te::da::DataSet> result = tds->release();
193 std::auto_ptr<te::st::TimeSeriesDataSet>
198 std::auto_ptr<te::st::TimeSeriesDataSet> result;
207 std::auto_ptr<te::st::TimeSeriesDataSet> result;
214 if(m_info->getObservationDataSetInfo().getDataSourceInfo().getId().empty())
227 if(ds.get() == 0 || !ds->isValid() || !ds->isOpened())
235 if(m_rendererType.empty())
236 throw te::map::Exception((boost::format(
TE_TR(
"Could not draw the data set layer %1%. The renderer type is empty!")) % getTitle()).str());
240 if(renderer.get() == 0)
241 throw te::map::Exception((boost::format(
TE_TR(
"Could not draw the data set layer %1%. The renderer %2% could not be created!")) % getTitle() % m_rendererType).str());
243 renderer->draw(
this, canvas, bbox, srid);
253 return m_info->getObservationDataSetInfo().getDataSourceInfo().getId();
258 return m_rendererType;
268 if (m_layers.empty())
TEDATAACCESSEXPORT DataSourcePtr GetDataSource(const std::string &datasourceId, const bool opened=true)
Search for a data source with the informed id in the DataSourceManager.
const std::string & getDataSourceId() const
boost::shared_ptr< DataSource > DataSourcePtr
~TimeSeriesDataSetLayer()
Destructor.
const std::string & getType() const
It returns the layer type: TIMESERIESDATASETLAYER.
bool isValid() const
It returns true if the layer can be used for instance to draw, otherwise, it returns false...
TemporalRelation
Temporal relations between date and time (Source: Allen, 1991).
SpatialRelation
Spatial relations between geometric objects.
const std::string & getRendererType() const
#define TE_TR(message)
It marks a string in order to get translated.
This is an abstract class that models a query expression.
A layer with a reference to an TimeSeriesDataSet.
AccessPolicy
Supported data access policies (can be used as bitfield).
TraverseType
A dataset can be traversed in two ways:
A layer with reference to a dataset that contains spatiotemporal data.
An Envelope defines a 2D rectangular region.
void setRendererType(const std::string &t)
This class represents a set of unique ids created in the same context. i.e. from the same data set...
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
static AbstractRenderer * make(const std::string &factoryKey)
It creates an object with the appropriated factory.
std::auto_ptr< te::st::TimeSeriesDataSet > getTimeSeriesDataset(te::common::TraverseType travType=te::common::FORWARDONLY) const
void draw(te::map::Canvas *canvas, const te::gm::Envelope &bbox, int srid)
It draws the layer geographic objects in the given canvas using the informed SRS. ...
A canvas is an abstraction of a drawing area.
A class that contains infos about a DataSet that contains observations of one or more time series...
An abstract class to represent a period of date and time.
TimeSeriesDataSetLayer(AbstractLayer *parent, TimeSeriesDataSetInfo *info)
It initializes a new layer.
static const std::string sm_type
A static data member used in the implementation of getType method.
static std::auto_ptr< ObservationDataSet > getDataSet(const ObservationDataSetInfo &info, te::common::TraverseType travType=te::common::FORWARDONLY)
It returns a ObservationDataSet, that is, a DataSet that contains observations.
te::dt::DateTimePeriod * getTemporalExtent() const
It returns the layer temporal extent.
std::auto_ptr< te::da::DataSet > getData(te::common::TraverseType travType=te::common::FORWARDONLY, const te::common::AccessPolicy accessPolicy=te::common::RAccess) const
It gets the dataset identified by the layer name.
std::auto_ptr< LayerSchema > getSchema() const
It returns the layer schema.
bool hasChilds()
Checks if the layer has any childs.