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;
128 virtual bool elided()
const;
129 virtual bool empty()
const;
138 virtual void print(std::ostream&);
161 virtual std::string label()
const;
173 virtual void processNodeFeatures(DtVectorNetwork*);
176 virtual void processEdgeFeatures(DtVectorNetwork*);
179 virtual void addLinearFeature(DtNetworkEdge*);
182 virtual void addArealFeature(DtNetworkEdge*);
186 virtual bool isPointFeature(
const DtNetworkElement& networkElement);
190 virtual bool isLinearFeature(
const DtNetworkElement& networkElement);
194 virtual bool isArealFeature(
const DtNetworkElement& networkElement);
201 virtual void print(
const std::string& file);
202 virtual void print(std::ostream&);
203 virtual void print(std::ostream&,
const DtSpecification&);
209 virtual bool saveAsShapeFiles(
const std::string& directory, std::string&
error);
221 std::set<DtSpecificationID>
ids;
232 virtual AttributeMap createAttributeMapFromSpecification(
const DtSpecification&)
const;
235 virtual bool saveShapeFileForLayer(
int featureType,
const SpecificationLayer&,
const std::string& directory, std::string& error)
const;
238 virtual std::string fixupNameToLength(
const std::string& name,
int length)
const;
241 virtual bool addAttributesToLayer(
const AttributeMap&, OGRLayer*, std::string& error)
const;