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