11 #include <gdb/specificationManager.h>
15 class DtVectorNetwork;
18 class DtNetworkElement;
21 namespace MAKVRinTerra
27 ,
public boost::enable_shared_from_this<DtGdbVectorFeature>
31 typedef boost::shared_ptr<DtGdbVectorFeature>
Ptr;
43 virtual void setAsPointGeometry(
const DtPoint&);
46 virtual void setAsLinearGeometry(
const std::vector<DtPoint>&);
49 virtual void setAsArealGeometry(
const std::vector<DtPoint>&);
53 virtual void setSpecificationID(DtSpecificationID);
54 DtSpecificationID specificationID()
const
60 static Ptr MakePoint(
const DtNetworkNode*, boost::shared_ptr<DtSpecificationManager> mgr,
DtProj::CPtr projection);
63 static Ptr MakePath(
const DtNetworkEdge*, boost::shared_ptr<DtSpecificationManager> mgr,
DtProj::CPtr projection);
66 static Ptr MakeArea(
const DtNetworkEdge*, boost::shared_ptr<DtSpecificationManager> mgr,
DtProj::CPtr projection);
69 static Ptr Make(std::istream&, boost::shared_ptr<DtSpecificationManager> mgr,
DtProj::CPtr projection);
74 virtual boost::optional<Attribute> attribute(
const Key & k)
const;
76 virtual void forEachAttribute(ForEachFunction f)
const;
78 virtual unsigned numberOfAttributes(
const Key::String &)
const;
85 bool isDeleted()
const
91 virtual void print(std::ostream&);
119 virtual std::string label()
const;
125 virtual bool loaded(
double = 0.0)
const;
127 virtual unsigned numberOfFeatures()
const;
136 virtual void print(std::ostream&);
159 virtual std::string label()
const;
171 virtual void processNodeFeatures(DtVectorNetwork*);
174 virtual void processEdgeFeatures(DtVectorNetwork*);
177 virtual void addLinearFeature(DtNetworkEdge*);
180 virtual void addArealFeature(DtNetworkEdge*);
184 virtual bool isPointFeature(
const DtNetworkElement& networkElement);
188 virtual bool isLinearFeature(
const DtNetworkElement& networkElement);
192 virtual bool isArealFeature(
const DtNetworkElement& networkElement);
199 virtual void print(
const std::string& file);
200 virtual void print(std::ostream&);
201 virtual void print(std::ostream&,
const DtSpecification&);
207 virtual bool saveAsShapeFiles(
const std::string& directory, std::string&
error);
219 std::set<DtSpecificationID>
ids;
230 virtual AttributeMap createAttributeMapFromSpecification(
const DtSpecification&)
const;
233 virtual bool saveShapeFileForLayer(
int featureType,
const SpecificationLayer&,
const std::string& directory, std::string& error)
const;
236 virtual std::string fixupNameToLength(
const std::string& name,
int length)
const;
239 virtual bool addAttributesToLayer(
const AttributeMap&, OGRLayer*, std::string& error)
const;