Added triangulation routine
This commit is contained in:
parent
045f3a8439
commit
6ea55594ab
25 changed files with 891530 additions and 171 deletions
66
lib/osmparser/src/osmimember.cpp
Normal file
66
lib/osmparser/src/osmimember.cpp
Normal file
|
@ -0,0 +1,66 @@
|
|||
#include <osmimember.hpp>
|
||||
|
||||
#include <osmobject.hpp>
|
||||
#include <tinyxml2.h>
|
||||
|
||||
namespace xml = tinyxml2;
|
||||
|
||||
namespace osmp
|
||||
{
|
||||
IMember::IMember(const xml::XMLElement* element, Object* parent, IMember::Type type) :
|
||||
type(type), parent(parent)
|
||||
{
|
||||
// Get Attribute
|
||||
id = GetSafeAttributeUint(element, "id");
|
||||
user = GetSafeAttributeString(element, "user");
|
||||
uid = GetSafeAttributeUint(element, "uid");
|
||||
visible = GetSafeAttributeBool(element, "visible");
|
||||
version = GetSafeAttributeString(element, "version");
|
||||
changeset = GetSafeAttributeUint(element, "changeset");
|
||||
timestamp = GetSafeAttributeString(element, "timestamp");
|
||||
|
||||
const xml::XMLElement* tag_element = element->FirstChildElement("tag");
|
||||
while (tag_element != nullptr)
|
||||
{
|
||||
tags.push_back({
|
||||
GetSafeAttributeString(tag_element, "k"),
|
||||
GetSafeAttributeString(tag_element, "v"),
|
||||
});
|
||||
|
||||
tag_element = tag_element->NextSiblingElement("tag");
|
||||
}
|
||||
}
|
||||
|
||||
IMember::Type IMember::GetType() const
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
const std::vector<Tag>& IMember::GetTags() const
|
||||
{
|
||||
return tags;
|
||||
}
|
||||
|
||||
size_t IMember::GetTagsSize() const
|
||||
{
|
||||
return tags.size();
|
||||
}
|
||||
|
||||
const Tag& IMember::GetTag(size_t index) const
|
||||
{
|
||||
return tags[index];
|
||||
}
|
||||
|
||||
std::string IMember::GetTag(const std::string& key) const
|
||||
{
|
||||
for (const Tag& tag : tags)
|
||||
{
|
||||
if (tag.k == key)
|
||||
{
|
||||
return tag.v;
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue