Make forward/reverse weight/offset calculated at query time,

rather than being cached in the StaticRTree.  This means we
can freely apply traffic data and not have stale values lying
around.  It reduces the size of the RTree on disk, at the expense
of some additional data in RAM.
This commit is contained in:
Daniel Patterson
2016-01-29 17:52:20 -08:00
parent 03d360b7bf
commit 49441fe204
24 changed files with 760 additions and 175 deletions
+5 -2
View File
@@ -7,6 +7,7 @@
#include "contractor/contractor_config.hpp"
#include "contractor/query_edge.hpp"
#include "extractor/edge_based_edge.hpp"
#include "extractor/edge_based_node.hpp"
#include "util/static_graph.hpp"
#include "util/deallocating_vector.hpp"
#include "util/node_based_graph.hpp"
@@ -22,7 +23,6 @@ namespace osrm
namespace extractor
{
struct SpeedProfileProperties;
struct EdgeBasedNode;
struct EdgeBasedEdge;
}
namespace contractor
@@ -66,7 +66,10 @@ class Contractor
util::DeallocatingVector<extractor::EdgeBasedEdge> &edge_based_edge_list,
const std::string &edge_segment_lookup_path,
const std::string &edge_penalty_path,
const std::string &segment_speed_path);
const std::string &segment_speed_path,
const std::string &nodes_filename,
const std::string &geometry_filename,
const std::string &rtree_leaf_filename);
};
}
}
+4
View File
@@ -24,6 +24,8 @@ struct ContractorConfig
edge_segment_lookup_path = osrm_input_path.string() + ".edge_segment_lookup";
edge_penalty_path = osrm_input_path.string() + ".edge_penalties";
node_based_graph_path = osrm_input_path.string() + ".nodes";
geometry_path = osrm_input_path.string() + ".geometry";
rtree_leaf_path = osrm_input_path.string() + ".fileIndex";
}
boost::filesystem::path config_file_path;
@@ -37,6 +39,8 @@ struct ContractorConfig
std::string edge_segment_lookup_path;
std::string edge_penalty_path;
std::string node_based_graph_path;
std::string geometry_path;
std::string rtree_leaf_path;
bool use_cached_priority;
unsigned requested_num_threads;