00001 /* 00002 * Way.h 00003 * 00004 * Created on: Nov 5, 2011 00005 * Author: martin 00006 */ 00007 00008 #ifndef WAY_H_ 00009 #define WAY_H_ 00010 00011 #include <stdint.h> 00012 #include "Element.h" 00013 #include "Node.h" 00014 #include <vector> 00015 #include <set> 00016 00017 namespace osm 00018 { 00019 00024 class Way : public Element 00025 { 00026 public: 00027 Way(); 00032 Way(int64_t id); 00033 virtual ~Way(); 00034 int64_t id; 00038 std::vector<osm::Node> nodes; 00042 std::set<osm::Tag> tags; 00043 boost::property_tree::ptree get_description(); 00044 osm::ObjectType get_type() const; 00045 bool operator==(Way const& e) const; 00046 bool operator!=(Way const& e) const; 00047 void fill(osmdb::PropertiesSelection& db); 00048 virtual int64_t get_id() const; 00049 void add_to_relation(osmdb::ElementImporter& db, int64_t relation, std::string const& role); 00050 }; 00051 00052 } 00053 #endif /* WAY_H_ */