39 #ifndef __OPENFLUID_LANDR_VECTORDATASET_HPP__ 40 #define __OPENFLUID_LANDR_VECTORDATASET_HPP__ 47 #include <ogrsf_frmts.h> 53 namespace geos {
namespace geom {
71 typedef std::list<std::pair<OGRFeature*, geos::geom::Geometry*> >
FeaturesList_t;
83 std::map<unsigned int, FeaturesList_t> m_Features;
89 std::map<unsigned int, geos::geom::Geometry*> m_Geometries;
94 std::string getTimestampedPath(
const std::string& OriginalFileName);
99 std::string getInitializedTmpPath();
106 bool isAlreadyExisting(
const std::string& Path);
112 void parse(
unsigned int LayerIndex);
114 void snapLineNodes(
double Threshold,
unsigned int LayerIndex=0);
116 void snapPolygonVertices(
double Threshold,
unsigned int LayerIndex=0);
163 void copyToDisk(
const std::string& FilePath,
164 const std::string& FileName,
165 bool ReplaceIfExists);
175 void addALayer(std::string LayerName =
"",
176 OGRwkbGeometryType LayerType = wkbUnknown,
177 OGRSpatialReference* SpatialRef =
nullptr);
184 OGRLayer* layer(
unsigned int LayerIndex = 0);
191 OGRFeatureDefn* layerDef(
unsigned int LayerIndex = 0);
200 void addAField(
const std::string& FieldName,
201 OGRFieldType FieldType = OFTString,
202 unsigned int LayerIndex = 0);
209 bool isLineType(
unsigned int LayerIndex = 0);
216 bool isPolygonType(
unsigned int LayerIndex = 0);
224 bool containsField(
const std::string& FieldName,
225 unsigned int LayerIndex = 0);
233 int getFieldIndex(
const std::string& FieldName,
234 unsigned int LayerIndex = 0);
244 bool isFieldOfType(
const std::string& FieldName,
245 OGRFieldType FieldType,
246 unsigned int LayerIndex = 0);
255 bool isIntValueSet(
const std::string& FieldName,
257 unsigned int LayerIndex = 0);
264 FeaturesList_t features(
unsigned int LayerIndex = 0);
272 geos::geom::Geometry* geometries(
unsigned int LayerIndex = 0);
279 bool isPointType(
unsigned int LayerIndex = 0);
287 void setIndexIntField(
const std::string& FieldName,
289 unsigned int LayerIndex = 0);
294 OGREnvelope envelope();
302 void snapVertices(
double Threshold,
unsigned int LayerIndex=0);
311 std::string checkTopology(
double Threshold,
unsigned int LayerIndex=0);
319 std::list<std::pair<OGRFeature*, OGRFeature*> > findOverlap(
unsigned int LayerIndex=0);
328 std::list<std::pair<OGRFeature*, OGRFeature*> > findGap(
double Threshold,
unsigned int LayerIndex=0);
336 void cleanOverlap(
double Threshold,
unsigned int LayerIndex=0);
343 std::list<OGRFeature*> hasDuplicateGeometry(
unsigned int LayerIndex=0);
Definition: ApplicationException.hpp:47
#define GDALDataset_COMPAT
Definition: GDALCompatibility.hpp:71
Interface for managing Vector Data format.
Definition: VectorDataset.hpp:64
Definition: GeoVectorValue.hpp:56
Definition: LandREntity.hpp:53
std::list< std::pair< OGRFeature *, geos::geom::Geometry * > > FeaturesList_t
A list of pair of OGRFeature and geos::geom::Geometry related to this VectorDataset entities...
Definition: VectorDataset.hpp:71
#define OPENFLUID_API
Definition: dllexport.hpp:86