Support maneuver relations (#4676)

This commit is contained in:
Daniel Patterson
2018-02-10 05:32:09 +11:00
committed by GitHub
parent 1aed13500d
commit 5531cace7f
46 changed files with 1474 additions and 89 deletions
+28
View File
@@ -17,6 +17,7 @@
#include "extractor/edge_based_edge.hpp"
#include "extractor/edge_based_node.hpp"
#include "extractor/files.hpp"
#include "extractor/maneuver_override.hpp"
#include "extractor/packed_osm_ids.hpp"
#include "extractor/profile_properties.hpp"
#include "extractor/query_node.hpp"
@@ -440,6 +441,17 @@ void Storage::PopulateLayout(DataLayout &layout)
lane_tuple_count);
}
// load maneuver overrides
{
io::FileReader maneuver_overrides_file(config.GetPath(".osrm.maneuver_overrides"),
io::FileReader::VerifyFingerprint);
const auto number_of_overrides = maneuver_overrides_file.ReadElementCount64();
layout.SetBlockSize<extractor::StorageManeuverOverride>(DataLayout::MANEUVER_OVERRIDES,
number_of_overrides);
const auto number_of_nodes = maneuver_overrides_file.ReadElementCount64();
layout.SetBlockSize<NodeID>(DataLayout::MANEUVER_OVERRIDE_NODE_SEQUENCES, number_of_nodes);
}
{
// Loading MLD Data
if (boost::filesystem::exists(config.GetPath(".osrm.partition")))
@@ -1074,6 +1086,22 @@ void Storage::PopulateData(const DataLayout &layout, char *memory_ptr)
" in " + config.GetPath(".osrm.edges").string());
}
}
// load maneuver overrides
{
io::FileReader maneuver_overrides_file(config.GetPath(".osrm.maneuver_overrides"),
io::FileReader::VerifyFingerprint);
const auto number_of_overrides = maneuver_overrides_file.ReadElementCount64();
const auto number_of_nodes = maneuver_overrides_file.ReadElementCount64();
const auto maneuver_overrides_ptr =
layout.GetBlockPtr<extractor::StorageManeuverOverride, true>(
memory_ptr, DataLayout::MANEUVER_OVERRIDES);
maneuver_overrides_file.ReadInto(maneuver_overrides_ptr, number_of_overrides);
const auto maneuver_override_node_sequences_ptr = layout.GetBlockPtr<NodeID, true>(
memory_ptr, DataLayout::MANEUVER_OVERRIDE_NODE_SEQUENCES);
maneuver_overrides_file.ReadInto(maneuver_override_node_sequences_ptr, number_of_nodes);
}
}
}
}