source: subversion/applications/lib/libosm/Object.cpp @ 34963

Last change on this file since 34963 was 12366, checked in by nienhueser, 11 years ago

Non-const access to tags, fix rulestest (id encapsulation)

File size: 1.2 KB
Line 
1#include "Object.h"
2#include <iostream>
3
4using namespace std;
5
6namespace OSM
7{
8
9vector<string> Object::getTags() const
10{
11        vector<string> t;
12
13        for (map<string, string>::const_iterator i = m_tags.begin(); i
14                        != m_tags.end(); i++)
15        {
16                t.push_back(i->first);
17        }
18
19        return t;
20}
21
22// 260107 converted ' to "
23void Object::tagsToXML(ostream &strm)
24{
25        for (map<string, string>::const_iterator i = m_tags.begin(); i
26                        != m_tags.end(); i++)
27        {
28                strm << "    <tag k=\"" << i->first << "\" v=\"" << i->second << "\"/>"
29                                << endl;
30        }
31}
32
33bool Object::hasTags() const
34{
35        return m_tags.size() > 0;
36}
37
38int Object::id() const
39{
40        return m_id;
41}
42
43void Object::setId(int id)
44{
45        m_id = id;
46}
47
48Object::Object(int id) :
49        m_id(id)
50{
51}
52
53void Object::setName(const string& n)
54{
55        //name = n;
56        m_tags["name"] = n;
57}
58
59string Object::getName()
60{
61        //return name;
62        return (m_tags.find("name") != m_tags.end()) ? m_tags["name"] : "";
63}
64
65bool Object::isFromOSM()
66{
67        return m_id > 0;
68}
69
70void Object::addTag(string key, string value)
71{
72        m_tags[key] = value;
73}
74
75string Object::getTag(const string& tag)
76{
77        return (m_tags.find(tag) != m_tags.end()) ? m_tags[tag] : "";
78}
79
80map<string, string> const &Object::tags() const
81{
82        return m_tags;
83}
84
85map<string, string> &Object::tags()
86{
87        return m_tags;
88}
89
90
91}
Note: See TracBrowser for help on using the repository browser.