Loading...
Searching...
No Matches
DefaultFeatureInfoMaker.h
Go to the documentation of this file.
1/* Copyright (C) 2017 National Institute For Space Research (INPE) - Brazil.
2
3 This file is part of the TerraLib - a Framework for building GIS enabled applications.
4
5 TerraLib is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 TerraLib is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with TerraLib. See COPYING. If not, write to
17 TerraLib Team at <terralib-team@terralib.org>.
18 */
19
20/*!
21 \file terralib/qt/widgets/layer/info/DefaultFeatureInfoMaker.h
22
23 \brief DefaultFeatureInfoMaker is a default implementation of AbstractFeatureInfoMaker
24 that could be used to fill a QTreeWidgetItem with vector or raster based information.
25*/
26
27#ifndef __TERRALIB_QT_WIDGETS_LAYER_INTERNAL_DEFAULTFEATUREINFOMAKER_H
28#define __TERRALIB_QT_WIDGETS_LAYER_INTERNAL_DEFAULTFEATUREINFOMAKER_H
29
30#include "../../Config.h"
31#include "../../../../maptools/AbstractLayer.h"
33
34// Qt
35#include <QTreeWidgetItem>
36
37class QTreeWidgetItem;
38
39namespace te
40{
41 namespace da
42 {
43 class DataSet;
44 }
45
46 namespace gm
47 {
48 class Envelope;
49 class Geometry;
50 }
51
52 namespace rst
53 {
54 class Raster;
55 }
56
57 namespace qt
58 {
59 namespace widgets
60 {
61 //Foward declaration
62 class MapDisplay;
63
64
66 {
67
68 public:
69
71
73
74 public:
75
76 /*!
77 * \brief This function is an implementation to get feature information.
78 * The information based on vector or raster data of the layer will be embedded in QTreeWidgetItem.
79 *
80 * \param layerItem QTreeWidgetItem that will be populated.
81 * \param display MapDisplay that will be passed by Info tool.
82 * \param layer AbstractLayerPtr to retrieve the feature information.
83 * \param e Envelope with the box based on user's click.
84 */
85 void getInfo(QTreeWidgetItem* layerItem, MapDisplay* display, const te::map::AbstractLayerPtr& layer, const te::gm::Envelope& e);
86
87 void getGeometryInfo(QTreeWidgetItem* layerItem, MapDisplay* display, te::da::DataSet* dataset, const std::string& geomPropertyName, const te::gm::Envelope& e, int srid, bool needRemap);
88
89 void getRasterInfo(QTreeWidgetItem* layerItem, MapDisplay* display, te::rst::Raster* raster, const te::gm::Envelope& e, int srid, bool needRemap);
90
92
93 protected:
94
95 QTreeWidgetItem* createItemFromGeometryInfo(std::size_t index, QTreeWidgetItem* layerItem, te::da::DataSet* dataset);
96
97 };
98 }
99 }
100}
101
102#endif // __TERRALIB_QT_WIDGETS_LAYER_INTERNAL_DEFAULTFEATUREINFOMAKER_H
AbstractFeatureInfoMaker is an abstraction to construct a QTreeWidgetItem to be used on Info tool scr...
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:114
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:52
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
Definition: Geometry.h:78
QTreeWidgetItem * createItemFromGeometryInfo(std::size_t index, QTreeWidgetItem *layerItem, te::da::DataSet *dataset)
void drawGeometry(MapDisplay *display, te::gm::Geometry *g)
void getGeometryInfo(QTreeWidgetItem *layerItem, MapDisplay *display, te::da::DataSet *dataset, const std::string &geomPropertyName, const te::gm::Envelope &e, int srid, bool needRemap)
void getInfo(QTreeWidgetItem *layerItem, MapDisplay *display, const te::map::AbstractLayerPtr &layer, const te::gm::Envelope &e)
This function is an implementation to get feature information. The information based on vector or ras...
void getRasterInfo(QTreeWidgetItem *layerItem, MapDisplay *display, te::rst::Raster *raster, const te::gm::Envelope &e, int srid, bool needRemap)
A widget to control the display of a set of layers.
Definition: MapDisplay.h:72
An abstract class for raster data strucutures.
Definition: Raster.h:72
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
TerraLib.
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63