Also exclude the compressed flag from the data format
This commit is contained in:
		
							parent
							
								
									f5bc843fe6
								
							
						
					
					
						commit
						53dbb1eac2
					
				| @ -160,7 +160,6 @@ template <class EdgeDataT> class InternalDataFacade final : public BaseDataFacad | |||||||
|             m_name_ID_list[i] = current_edge_data.name_id; |             m_name_ID_list[i] = current_edge_data.name_id; | ||||||
|             m_turn_instruction_list[i] = current_edge_data.turn_instruction; |             m_turn_instruction_list[i] = current_edge_data.turn_instruction; | ||||||
|             m_travel_mode_list[i] = current_edge_data.travel_mode; |             m_travel_mode_list[i] = current_edge_data.travel_mode; | ||||||
|             BOOST_ASSERT(current_edge_data.compressed_geometry); |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -300,12 +300,14 @@ template <class DataFacadeT, class Derived> class BasicRoutingInterface | |||||||
|                 std::vector<NodeID> id_vector; |                 std::vector<NodeID> id_vector; | ||||||
|                 facade->GetUncompressedGeometry(facade->GetGeometryIndexForEdgeID(ed.id), |                 facade->GetUncompressedGeometry(facade->GetGeometryIndexForEdgeID(ed.id), | ||||||
|                                                 id_vector); |                                                 id_vector); | ||||||
|  |                 BOOST_ASSERT(id_vector.size() > 0); | ||||||
| 
 | 
 | ||||||
|                 std::vector<EdgeWeight> weight_vector; |                 std::vector<EdgeWeight> weight_vector; | ||||||
|                 facade->GetUncompressedWeights(facade->GetGeometryIndexForEdgeID(ed.id), |                 facade->GetUncompressedWeights(facade->GetGeometryIndexForEdgeID(ed.id), | ||||||
|                                                weight_vector); |                                                weight_vector); | ||||||
|  |                 BOOST_ASSERT(weight_vector.size() > 0); | ||||||
| 
 | 
 | ||||||
|                 int total_weight = |                 auto total_weight = | ||||||
|                     std::accumulate(weight_vector.begin(), weight_vector.end(), 0); |                     std::accumulate(weight_vector.begin(), weight_vector.end(), 0); | ||||||
| 
 | 
 | ||||||
|                 BOOST_ASSERT(weight_vector.size() == id_vector.size()); |                 BOOST_ASSERT(weight_vector.size() == id_vector.size()); | ||||||
| @ -322,13 +324,14 @@ template <class DataFacadeT, class Derived> class BasicRoutingInterface | |||||||
|                 const std::size_t end_index = id_vector.size(); |                 const std::size_t end_index = id_vector.size(); | ||||||
| 
 | 
 | ||||||
|                 BOOST_ASSERT(start_index >= 0); |                 BOOST_ASSERT(start_index >= 0); | ||||||
|                 BOOST_ASSERT(start_index <= end_index); |                 BOOST_ASSERT(start_index < end_index); | ||||||
|                 for (std::size_t i = start_index; i < end_index; ++i) |                 for (std::size_t i = start_index; i < end_index; ++i) | ||||||
|                 { |                 { | ||||||
|                     unpacked_path.emplace_back(id_vector[i], name_index, |                     unpacked_path.emplace_back(id_vector[i], name_index, | ||||||
|                                                extractor::TurnInstruction::NoTurn, weight_vector[i], |                                                extractor::TurnInstruction::NoTurn, weight_vector[i], | ||||||
|                                                travel_mode); |                                                travel_mode); | ||||||
|                 } |                 } | ||||||
|  |                 BOOST_ASSERT(unpacked_path.size() > 0); | ||||||
|                 unpacked_path.back().turn_instruction = turn_instruction; |                 unpacked_path.back().turn_instruction = turn_instruction; | ||||||
|                 unpacked_path.back().segment_duration += (ed.distance - total_weight); |                 unpacked_path.back().segment_duration += (ed.distance - total_weight); | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -17,24 +17,22 @@ struct OriginalEdgeData | |||||||
|     explicit OriginalEdgeData(NodeID via_node, |     explicit OriginalEdgeData(NodeID via_node, | ||||||
|                               unsigned name_id, |                               unsigned name_id, | ||||||
|                               TurnInstruction turn_instruction, |                               TurnInstruction turn_instruction, | ||||||
|                               bool compressed_geometry, |  | ||||||
|                               TravelMode travel_mode) |                               TravelMode travel_mode) | ||||||
|         : via_node(via_node), name_id(name_id), turn_instruction(turn_instruction), |         : via_node(via_node), name_id(name_id), turn_instruction(turn_instruction), | ||||||
|           compressed_geometry(compressed_geometry), travel_mode(travel_mode) |           travel_mode(travel_mode) | ||||||
|     { |     { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     OriginalEdgeData() |     OriginalEdgeData() | ||||||
|         : via_node(std::numeric_limits<unsigned>::max()), |         : via_node(std::numeric_limits<unsigned>::max()), | ||||||
|           name_id(std::numeric_limits<unsigned>::max()), turn_instruction(TurnInstruction::NoTurn), |           name_id(std::numeric_limits<unsigned>::max()), turn_instruction(TurnInstruction::NoTurn), | ||||||
|           compressed_geometry(false), travel_mode(TRAVEL_MODE_INACCESSIBLE) |           travel_mode(TRAVEL_MODE_INACCESSIBLE) | ||||||
|     { |     { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     NodeID via_node; |     NodeID via_node; | ||||||
|     unsigned name_id; |     unsigned name_id; | ||||||
|     TurnInstruction turn_instruction; |     TurnInstruction turn_instruction; | ||||||
|     bool compressed_geometry; |  | ||||||
|     TravelMode travel_mode; |     TravelMode travel_mode; | ||||||
| }; | }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -297,7 +297,6 @@ void EdgeBasedGraphFactory::GenerateEdgeExpandedEdges( | |||||||
|     restricted_turns_counter = 0; |     restricted_turns_counter = 0; | ||||||
|     skipped_uturns_counter = 0; |     skipped_uturns_counter = 0; | ||||||
|     skipped_barrier_turns_counter = 0; |     skipped_barrier_turns_counter = 0; | ||||||
|     std::size_t compressed = 0; |  | ||||||
| 
 | 
 | ||||||
|     std::ofstream edge_data_file(original_edge_data_filename.c_str(), std::ios::binary); |     std::ofstream edge_data_file(original_edge_data_filename.c_str(), std::ios::binary); | ||||||
|     std::ofstream edge_segment_file; |     std::ofstream edge_segment_file; | ||||||
| @ -371,19 +370,10 @@ void EdgeBasedGraphFactory::GenerateEdgeExpandedEdges( | |||||||
| 
 | 
 | ||||||
|                 distance += turn_penalty; |                 distance += turn_penalty; | ||||||
| 
 | 
 | ||||||
|                 const bool edge_is_compressed = |                 BOOST_ASSERT(m_compressed_edge_container.HasEntryForID(edge_form_u)); | ||||||
|                     m_compressed_edge_container.HasEntryForID(edge_form_u); |  | ||||||
| 
 |  | ||||||
|                 if (edge_is_compressed) |  | ||||||
|                 { |  | ||||||
|                     ++compressed; |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 original_edge_data_vector.emplace_back( |                 original_edge_data_vector.emplace_back( | ||||||
|                     (edge_is_compressed ? m_compressed_edge_container.GetPositionForID(edge_form_u) |                     m_compressed_edge_container.GetPositionForID(edge_form_u), edge_data1.name_id, | ||||||
|                                         : node_v), |                     turn_instruction, edge_data1.travel_mode); | ||||||
|                     edge_data1.name_id, turn_instruction, edge_is_compressed, |  | ||||||
|                     edge_data1.travel_mode); |  | ||||||
| 
 | 
 | ||||||
|                 ++original_edges_counter; |                 ++original_edges_counter; | ||||||
| 
 | 
 | ||||||
| @ -418,8 +408,6 @@ void EdgeBasedGraphFactory::GenerateEdgeExpandedEdges( | |||||||
|                     unsigned fixed_penalty = distance - edge_data1.distance; |                     unsigned fixed_penalty = distance - edge_data1.distance; | ||||||
|                     edge_penalty_file.write(reinterpret_cast<const char *>(&fixed_penalty), |                     edge_penalty_file.write(reinterpret_cast<const char *>(&fixed_penalty), | ||||||
|                                             sizeof(fixed_penalty)); |                                             sizeof(fixed_penalty)); | ||||||
|                     if (edge_is_compressed) |  | ||||||
|                     { |  | ||||||
|                     const auto node_based_edges = |                     const auto node_based_edges = | ||||||
|                         m_compressed_edge_container.GetBucketReference(edge_form_u); |                         m_compressed_edge_container.GetBucketReference(edge_form_u); | ||||||
|                     NodeID previous = node_u; |                     NodeID previous = node_u; | ||||||
| @ -436,40 +424,18 @@ void EdgeBasedGraphFactory::GenerateEdgeExpandedEdges( | |||||||
|                         const QueryNode &from = m_node_info_list[previous]; |                         const QueryNode &from = m_node_info_list[previous]; | ||||||
|                         const QueryNode &to = m_node_info_list[target_node.node_id]; |                         const QueryNode &to = m_node_info_list[target_node.node_id]; | ||||||
|                         const double segment_length = |                         const double segment_length = | ||||||
|                                 util::coordinate_calculation::greatCircleDistance( |                             util::coordinate_calculation::greatCircleDistance(from.lat, from.lon, | ||||||
|                                     from.lat, from.lon, to.lat, to.lon); |                                                                               to.lat, to.lon); | ||||||
| 
 | 
 | ||||||
|                         edge_segment_file.write(reinterpret_cast<const char *>(&to.node_id), |                         edge_segment_file.write(reinterpret_cast<const char *>(&to.node_id), | ||||||
|                                                 sizeof(to.node_id)); |                                                 sizeof(to.node_id)); | ||||||
|                         edge_segment_file.write(reinterpret_cast<const char *>(&segment_length), |                         edge_segment_file.write(reinterpret_cast<const char *>(&segment_length), | ||||||
|                                                 sizeof(segment_length)); |                                                 sizeof(segment_length)); | ||||||
|                             edge_segment_file.write( |                         edge_segment_file.write(reinterpret_cast<const char *>(&target_node.weight), | ||||||
|                                 reinterpret_cast<const char *>(&target_node.weight), |  | ||||||
|                                                 sizeof(target_node.weight)); |                                                 sizeof(target_node.weight)); | ||||||
|                         previous = target_node.node_id; |                         previous = target_node.node_id; | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|                     else |  | ||||||
|                     { |  | ||||||
|                         static const unsigned node_count = 2; |  | ||||||
|                         const QueryNode from = m_node_info_list[node_u]; |  | ||||||
|                         const QueryNode to = m_node_info_list[node_v]; |  | ||||||
|                         const double segment_length = |  | ||||||
|                             util::coordinate_calculation::greatCircleDistance(from.lat, from.lon, |  | ||||||
|                                                                               to.lat, to.lon); |  | ||||||
|                         edge_segment_file.write(reinterpret_cast<const char *>(&node_count), |  | ||||||
|                                                 sizeof(node_count)); |  | ||||||
|                         edge_segment_file.write(reinterpret_cast<const char *>(&from.node_id), |  | ||||||
|                                                 sizeof(from.node_id)); |  | ||||||
|                         edge_segment_file.write(reinterpret_cast<const char *>(&to.node_id), |  | ||||||
|                                                 sizeof(to.node_id)); |  | ||||||
|                         edge_segment_file.write(reinterpret_cast<const char *>(&segment_length), |  | ||||||
|                                                 sizeof(segment_length)); |  | ||||||
|                         edge_segment_file.write( |  | ||||||
|                             reinterpret_cast<const char *>(&edge_data1.distance), |  | ||||||
|                             sizeof(edge_data1.distance)); |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -405,7 +405,6 @@ int Storage::Run() | |||||||
|         name_id_ptr[i] = current_edge_data.name_id; |         name_id_ptr[i] = current_edge_data.name_id; | ||||||
|         travel_mode_ptr[i] = current_edge_data.travel_mode; |         travel_mode_ptr[i] = current_edge_data.travel_mode; | ||||||
|         turn_instructions_ptr[i] = current_edge_data.turn_instruction; |         turn_instructions_ptr[i] = current_edge_data.turn_instruction; | ||||||
|         BOOST_ASSERT(current_edge_data.compressed_geometry); |  | ||||||
|     } |     } | ||||||
|     edges_input_stream.close(); |     edges_input_stream.close(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user