diff --git a/Descriptors/JSONDescriptor.h b/Descriptors/JSONDescriptor.h index b471beb4c..6f140a727 100644 --- a/Descriptors/JSONDescriptor.h +++ b/Descriptors/JSONDescriptor.h @@ -69,11 +69,13 @@ template class JSONDescriptor : public BaseDescriptor GenerateRouteNames; public: - JSONDescriptor(DataFacadeT *facade) : facade(facade), entered_restricted_area_count(0) { } + JSONDescriptor(DataFacadeT *facade) : facade(facade), entered_restricted_area_count(0) {} void SetConfig(const DescriptorConfig &c) { config = c; } - unsigned DescribeLeg(const std::vector route_leg, const PhantomNodes &leg_phantoms, const bool target_traversed_in_reverse) + unsigned DescribeLeg(const std::vector route_leg, + const PhantomNodes &leg_phantoms, + const bool target_traversed_in_reverse) { unsigned added_element_count = 0; // Get all the coordinates for the computed route @@ -103,14 +105,15 @@ template class JSONDescriptor : public BaseDescriptorGetEscapedNameForNameID(raw_route.segment_end_coordinates.front().source_phantom.name_id); + std::string road_name = facade->GetEscapedNameForNameID( + raw_route.segment_end_coordinates.front().source_phantom.name_id); BOOST_ASSERT(raw_route.unpacked_path_segments.size() == raw_route.segment_end_coordinates.size()); - description_factory.SetStartSegment(raw_route.segment_end_coordinates.front().source_phantom, - raw_route.source_traversed_in_reverse.front()); + description_factory.SetStartSegment( + raw_route.segment_end_coordinates.front().source_phantom, + raw_route.source_traversed_in_reverse.front()); json_result.values["status"] = 0; json_result.values["status_message"] = "Found route between points"; @@ -120,16 +123,17 @@ template class JSONDescriptor : public BaseDescriptor class JSONDescriptor : public BaseDescriptorGetEscapedNameForNameID(description_factory.summary.source_name_id); - json_route_summary.values["end_point"] = facade->GetEscapedNameForNameID(description_factory.summary.target_name_id); + json_route_summary.values["start_point"] = + facade->GetEscapedNameForNameID(description_factory.summary.source_name_id); + json_route_summary.values["end_point"] = + facade->GetEscapedNameForNameID(description_factory.summary.target_name_id); json_result.values["route_summary"] = json_route_summary; BOOST_ASSERT(!raw_route.segment_end_coordinates.empty()); JSON::Array json_via_points_array; JSON::Array json_first_coordinate; - json_first_coordinate.values.push_back(raw_route.segment_end_coordinates.front().source_phantom.location.lat/COORDINATE_PRECISION); - json_first_coordinate.values.push_back(raw_route.segment_end_coordinates.front().source_phantom.location.lon/COORDINATE_PRECISION); + json_first_coordinate.values.push_back( + raw_route.segment_end_coordinates.front().source_phantom.location.lat / + COORDINATE_PRECISION); + json_first_coordinate.values.push_back( + raw_route.segment_end_coordinates.front().source_phantom.location.lon / + COORDINATE_PRECISION); json_via_points_array.values.push_back(json_first_coordinate); for (const PhantomNodes &nodes : raw_route.segment_end_coordinates) { std::string tmp; JSON::Array json_coordinate; - json_coordinate.values.push_back(nodes.target_phantom.location.lat/COORDINATE_PRECISION); - json_coordinate.values.push_back(nodes.target_phantom.location.lon/COORDINATE_PRECISION); + json_coordinate.values.push_back(nodes.target_phantom.location.lat / + COORDINATE_PRECISION); + json_coordinate.values.push_back(nodes.target_phantom.location.lon / + COORDINATE_PRECISION); json_via_points_array.values.push_back(json_coordinate); } json_result.values["via_points"] = json_via_points_array; JSON::Array json_via_indices_array; - std::vector const & shortest_leg_end_indices = description_factory.GetViaIndices(); - json_via_indices_array.values.insert(json_via_indices_array.values.end(), shortest_leg_end_indices.begin(), shortest_leg_end_indices.end()); + std::vector const &shortest_leg_end_indices = description_factory.GetViaIndices(); + json_via_indices_array.values.insert(json_via_indices_array.values.end(), + shortest_leg_end_indices.begin(), + shortest_leg_end_indices.end()); json_result.values["via_indices"] = json_via_indices_array; // only one alternative route is computed at this time, so this is hardcoded @@ -178,8 +192,9 @@ template class JSONDescriptor : public BaseDescriptor class JSONDescriptor : public BaseDescriptor class JSONDescriptor : public BaseDescriptorGetEscapedNameForNameID(alternate_description_factory.summary.source_name_id); - json_alternate_route_summary.values["end_point"] = facade->GetEscapedNameForNameID(alternate_description_factory.summary.target_name_id); + json_alternate_route_summary.values["total_distance"] = + alternate_description_factory.summary.distance; + json_alternate_route_summary.values["total_time"] = + alternate_description_factory.summary.duration; + json_alternate_route_summary.values["start_point"] = facade->GetEscapedNameForNameID( + alternate_description_factory.summary.source_name_id); + json_alternate_route_summary.values["end_point"] = facade->GetEscapedNameForNameID( + alternate_description_factory.summary.target_name_id); json_alternate_route_summary_array.values.push_back(json_alternate_route_summary); json_result.values["alternative_summaries"] = json_alternate_route_summary_array; - std::vector const & alternate_leg_end_indices = alternate_description_factory.GetViaIndices(); + std::vector const &alternate_leg_end_indices = + alternate_description_factory.GetViaIndices(); JSON::Array json_altenative_indices_array; - json_altenative_indices_array.values.insert(json_altenative_indices_array.values.end(), alternate_leg_end_indices.begin(), alternate_leg_end_indices.end()); + json_altenative_indices_array.values.insert(json_altenative_indices_array.values.end(), + alternate_leg_end_indices.begin(), + alternate_leg_end_indices.end()); json_result.values["alternative_indices"] = json_altenative_indices_array; - } else { + } + else + { json_result.values["found_alternative"] = JSON::False(); } // Get Names for both routes - RouteNames route_names = GenerateRouteNames(shortest_path_segments, alternative_path_segments, facade); + RouteNames route_names = + GenerateRouteNames(shortest_path_segments, alternative_path_segments, facade); JSON::Array json_route_names; json_route_names.values.push_back(route_names.shortest_path_name_1); json_route_names.values.push_back(route_names.shortest_path_name_2); @@ -267,7 +294,7 @@ template class JSONDescriptor : public BaseDescriptor &route_segments_list) { @@ -296,7 +323,8 @@ template class JSONDescriptor : public BaseDescriptor class JSONDescriptor : public BaseDescriptorGetEscapedNameForNameID(segment.name_id)); + json_instruction_row.values.push_back( + facade->GetEscapedNameForNameID(segment.name_id)); json_instruction_row.values.push_back(std::round(segment.length)); json_instruction_row.values.push_back(necessary_segments_running_index); json_instruction_row.values.push_back(round(segment.duration / 10)); - json_instruction_row.values.push_back(IntToString(segment.length)+"m"); + json_instruction_row.values.push_back( + UintToString(static_cast(segment.length)) + "m"); int bearing_value = round(segment.bearing / 10.); json_instruction_row.values.push_back(Azimuth::Get(bearing_value)); json_instruction_row.values.push_back(bearing_value); @@ -334,7 +364,7 @@ template class JSONDescriptor : public BaseDescriptor