diff --git a/generator/osm2type.cpp b/generator/osm2type.cpp index 80c220f695..6aeccab3d0 100644 --- a/generator/osm2type.cpp +++ b/generator/osm2type.cpp @@ -558,6 +558,9 @@ namespace ftype bool subwayDone = false; bool railwayDone = false; + bool addOneway = false; + bool noOneway = false; + // Get a copy of source types, because we will modify params in the loop; FeatureParams::TTypes const vTypes = params.m_Types; for (size_t i = 0; i < vTypes.size(); ++i) @@ -566,9 +569,11 @@ namespace ftype { TagProcessor(p).ApplyRules ({ - { "oneway", "yes", [¶ms] { params.AddType(types.Get(CachedTypes::ONEWAY)); }}, - { "oneway", "1", [¶ms] { params.AddType(types.Get(CachedTypes::ONEWAY)); }}, - { "oneway", "-1", [¶ms] { params.AddType(types.Get(CachedTypes::ONEWAY)); params.m_reverseGeometry = true; }}, + { "oneway", "yes", [&addOneway] { addOneway = true; }}, + { "oneway", "1", [&addOneway] { addOneway = true; }}, + { "oneway", "-1", [&addOneway, ¶ms] { addOneway = true; params.m_reverseGeometry = true; }}, + { "oneway", "!", [&noOneway] { noOneway = true; }}, + { "junction", "roundabout", [&addOneway] { addOneway = true; }}, { "access", "private", [¶ms] { params.AddType(types.Get(CachedTypes::PRIVATE)); }}, @@ -587,6 +592,9 @@ namespace ftype { "cycleway", "opposite", [¶ms] { params.AddType(types.Get(CachedTypes::BICYCLE_BIDIR)); }}, }); + if (addOneway && !noOneway) + params.AddType(types.Get(CachedTypes::ONEWAY)); + highwayDone = true; } @@ -670,7 +678,7 @@ namespace ftype k.clear(); v.clear(); } }, - { "layer", "*", [¶ms](string & k, string & v) + { "layer", "*", [¶ms](string & /* k */, string & v) { // Get layer. if (params.layer == 0) diff --git a/omim.pro b/omim.pro index e53e29a481..8502e2a25d 100644 --- a/omim.pro +++ b/omim.pro @@ -29,7 +29,7 @@ SUBDIRS = 3party base coding geometry editor indexer routing search SUBDIRS *= platform stats storage CONFIG(desktop) { - SUBDIRS *= generator + SUBDIRS *= traffic generator generator_tool.subdir = generator/generator_tool generator_tool.depends = $$SUBDIRS @@ -39,7 +39,7 @@ SUBDIRS = 3party base coding geometry editor indexer routing search # Integration tests dependencies for gtool. # TODO(AlexZ): Avoid duplication for routing_integration_tests. CONFIG(gtool):!CONFIG(no-tests) { - SUBDIRS *= traffic map + SUBDIRS *= map # Booking quality check booking_quality_check.subdir = generator/booking_quality_check