Add further documentation
This commit is contained in:
parent
8a608eb930
commit
3035219212
@ -301,6 +301,7 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name,
|
|||||||
node_iterator = all_nodes_list.begin();
|
node_iterator = all_nodes_list.begin();
|
||||||
edge_iterator = all_edges_list.begin();
|
edge_iterator = all_edges_list.begin();
|
||||||
|
|
||||||
|
// Also serializes the edges
|
||||||
while (edge_iterator != all_edges_list.end() && node_iterator != all_nodes_list.end())
|
while (edge_iterator != all_edges_list.end() && node_iterator != all_nodes_list.end())
|
||||||
{
|
{
|
||||||
if (edge_iterator->target < node_iterator->node_id)
|
if (edge_iterator->target < node_iterator->node_id)
|
||||||
@ -329,6 +330,8 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name,
|
|||||||
int integer_weight = std::max(
|
int integer_weight = std::max(
|
||||||
1, (int)std::floor(
|
1, (int)std::floor(
|
||||||
(edge_iterator->is_duration_set ? edge_iterator->speed : weight) + .5));
|
(edge_iterator->is_duration_set ? edge_iterator->speed : weight) + .5));
|
||||||
|
// FIXME: This means we have a _minimum_ edge length of 1m
|
||||||
|
// maybe use dm as base unit?
|
||||||
const int integer_distance = std::max(1, (int)distance);
|
const int integer_distance = std::max(1, (int)distance);
|
||||||
const short zero = 0;
|
const short zero = 0;
|
||||||
const short one = 1;
|
const short one = 1;
|
||||||
|
@ -64,6 +64,24 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: Refactor this function into smaller functions for better readability.
|
||||||
|
*
|
||||||
|
* This function is the entry point for the whole extraction process. The goal of the extraction
|
||||||
|
* step is to filter and convert the OSM geometry to something more fitting for routing.
|
||||||
|
* That includes:
|
||||||
|
* - extracting turn restrictions
|
||||||
|
* - splitting ways into (directional!) edge segments
|
||||||
|
* - checking if nodes are barriers or traffic signal
|
||||||
|
* - discarding all tag information: All relevant type information for nodes/ways
|
||||||
|
* is extracted at this point.
|
||||||
|
*
|
||||||
|
* The result of this process are the following files:
|
||||||
|
* .names : Names of all streets, stored as long consecutive string with prefix sum based index
|
||||||
|
* .osrm : Nodes and edges in a intermediate format that easy to digest for osrm-prepare
|
||||||
|
* .restrictions : Turn restrictions that are used my osrm-prepare to construct the edge-expanded graph
|
||||||
|
*
|
||||||
|
*/
|
||||||
int extractor::run(const ExtractorConfig &extractor_config)
|
int extractor::run(const ExtractorConfig &extractor_config)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -83,6 +101,7 @@ int extractor::run(const ExtractorConfig &extractor_config)
|
|||||||
// setup scripting environment
|
// setup scripting environment
|
||||||
ScriptingEnvironment scripting_environment(extractor_config.profile_path.string().c_str());
|
ScriptingEnvironment scripting_environment(extractor_config.profile_path.string().c_str());
|
||||||
|
|
||||||
|
// used to deduplicate street names: actually maps to name ids
|
||||||
std::unordered_map<std::string, NodeID> string_map;
|
std::unordered_map<std::string, NodeID> string_map;
|
||||||
string_map[""] = 0;
|
string_map[""] = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user