mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-25 07:13:53 +00:00
@@ -9,16 +9,16 @@ using namespace editor;
|
||||
|
||||
UNIT_TEST(loadConfigFile)
|
||||
{
|
||||
// loadConfigFile() is executed in the constructor
|
||||
// LoadConfigFile() is executed in the constructor
|
||||
TypeToOSMTranslator typeToOsm;
|
||||
}
|
||||
|
||||
UNIT_TEST(osmTagsFromType)
|
||||
UNIT_TEST(OsmTagsFromType)
|
||||
{
|
||||
classificator::Load();
|
||||
|
||||
uint32_t type = classif().GetTypeByReadableObjectName("amenity-restaurant");
|
||||
std::vector<OSMTag> resultVector = getOSMTranslator().osmTagsFromType(type);
|
||||
std::vector<OSMTag> resultVector = GetOSMTranslator().OsmTagsFromType(type);
|
||||
|
||||
TEST_EQUAL(resultVector.size(), 1, ());
|
||||
OSMTag const & result = resultVector.front();
|
||||
|
||||
@@ -6,20 +6,18 @@
|
||||
#include "indexer/classificator.hpp"
|
||||
#include "platform/platform.hpp"
|
||||
|
||||
|
||||
namespace editor
|
||||
{
|
||||
TypeToOSMTranslator::TypeToOSMTranslator()
|
||||
{
|
||||
loadConfigFile();
|
||||
}
|
||||
TypeToOSMTranslator::TypeToOSMTranslator(bool initialize)
|
||||
{
|
||||
if (initialize)
|
||||
LoadConfigFile();
|
||||
}
|
||||
|
||||
void TypeToOSMTranslator::loadConfigFile() {
|
||||
LOG(LINFO, ("Hello from loadConfigFile"));
|
||||
void TypeToOSMTranslator::LoadConfigFile() {
|
||||
LOG(LINFO, ("Hello from LoadConfigFile"));
|
||||
|
||||
m_storage.clear();
|
||||
|
||||
Platform & p = GetPlatform();
|
||||
Platform &p = GetPlatform();
|
||||
|
||||
std::unique_ptr<ModelReader> reader = p.GetReader("mapcss-mapping.csv");
|
||||
|
||||
@@ -28,6 +26,13 @@ namespace editor
|
||||
ReaderStreamBuf buffer(std::move(reader));
|
||||
std::istream s(&buffer);
|
||||
|
||||
LoadFromStream(s);
|
||||
}
|
||||
|
||||
void TypeToOSMTranslator::LoadFromStream(std::istream & s)
|
||||
{
|
||||
m_storage.clear();
|
||||
|
||||
std::string line;
|
||||
|
||||
int lineNumber = 0;
|
||||
@@ -89,15 +94,15 @@ namespace editor
|
||||
}
|
||||
|
||||
|
||||
if (lineNumber > 500)
|
||||
if (lineNumber > 80)
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<OSMTag> TypeToOSMTranslator::osmTagsFromType(uint32_t type)
|
||||
std::vector<OSMTag> TypeToOSMTranslator::OsmTagsFromType(uint32_t type)
|
||||
{
|
||||
LOG(LINFO, ("Computing osmTagsFromType for Type: ", type, "/ " , classif().GetReadableObjectName(type)));
|
||||
LOG(LINFO, ("Computing OsmTagsFromType for Type: ", type, "/ " , classif().GetReadableObjectName(type)));
|
||||
|
||||
auto it = m_storage.find(type);
|
||||
|
||||
@@ -110,7 +115,7 @@ std::vector<OSMTag> TypeToOSMTranslator::osmTagsFromType(uint32_t type)
|
||||
return it->second;
|
||||
}
|
||||
|
||||
TypeToOSMTranslator & getOSMTranslator()
|
||||
TypeToOSMTranslator & GetOSMTranslator()
|
||||
{
|
||||
static TypeToOSMTranslator translator;
|
||||
return translator;
|
||||
|
||||
@@ -16,15 +16,16 @@ struct OSMTag
|
||||
class TypeToOSMTranslator
|
||||
{
|
||||
public:
|
||||
TypeToOSMTranslator();
|
||||
explicit TypeToOSMTranslator(bool initialize = true);
|
||||
|
||||
void loadConfigFile();
|
||||
std::vector<OSMTag> osmTagsFromType(uint32_t type);
|
||||
void LoadConfigFile();
|
||||
void LoadFromStream(std::istream & s);
|
||||
std::vector<OSMTag> OsmTagsFromType(uint32_t type);
|
||||
|
||||
private:
|
||||
std::map<uint32_t, std::vector<OSMTag>> m_storage;
|
||||
};
|
||||
|
||||
TypeToOSMTranslator & getOSMTranslator();
|
||||
TypeToOSMTranslator & GetOSMTranslator();
|
||||
|
||||
} // namespace osm
|
||||
@@ -642,9 +642,9 @@ void XMLFeature::RemoveTag(string_view key)
|
||||
|
||||
void XMLFeature::SetOSMTagsForType(uint32_t type)
|
||||
{
|
||||
TypeToOSMTranslator translator = getOSMTranslator();
|
||||
TypeToOSMTranslator translator = GetOSMTranslator();
|
||||
|
||||
auto result = translator.osmTagsFromType(type);
|
||||
auto result = translator.OsmTagsFromType(type);
|
||||
|
||||
ASSERT(!result.empty(), ());
|
||||
ASSERT_EQUAL(result[0].key, "amenity", ());
|
||||
|
||||
Reference in New Issue
Block a user