expose component_id in phantom node
This commit is contained in:
parent
c7d3d635f6
commit
1bb3da0332
@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
PhantomNode::PhantomNode(NodeID forward_node_id, NodeID reverse_node_id, unsigned name_id,
|
PhantomNode::PhantomNode(NodeID forward_node_id, NodeID reverse_node_id, unsigned name_id,
|
||||||
int forward_weight, int reverse_weight, int forward_offset, int reverse_offset,
|
int forward_weight, int reverse_weight, int forward_offset, int reverse_offset,
|
||||||
unsigned packed_geometry_id, FixedPointCoordinate &location,
|
unsigned packed_geometry_id, unsigned component_id, FixedPointCoordinate &location,
|
||||||
unsigned short fwd_segment_position,
|
unsigned short fwd_segment_position,
|
||||||
TravelMode forward_travel_mode, TravelMode backward_travel_mode) :
|
TravelMode forward_travel_mode, TravelMode backward_travel_mode) :
|
||||||
forward_node_id(forward_node_id),
|
forward_node_id(forward_node_id),
|
||||||
@ -40,6 +40,7 @@ PhantomNode::PhantomNode(NodeID forward_node_id, NodeID reverse_node_id, unsigne
|
|||||||
forward_offset(forward_offset),
|
forward_offset(forward_offset),
|
||||||
reverse_offset(reverse_offset),
|
reverse_offset(reverse_offset),
|
||||||
packed_geometry_id(packed_geometry_id),
|
packed_geometry_id(packed_geometry_id),
|
||||||
|
component_id(component_id),
|
||||||
location(location),
|
location(location),
|
||||||
fwd_segment_position(fwd_segment_position),
|
fwd_segment_position(fwd_segment_position),
|
||||||
forward_travel_mode(forward_travel_mode),
|
forward_travel_mode(forward_travel_mode),
|
||||||
@ -55,6 +56,7 @@ PhantomNode::PhantomNode() :
|
|||||||
forward_offset(0),
|
forward_offset(0),
|
||||||
reverse_offset(0),
|
reverse_offset(0),
|
||||||
packed_geometry_id(SPECIAL_EDGEID),
|
packed_geometry_id(SPECIAL_EDGEID),
|
||||||
|
component_id(-1),
|
||||||
fwd_segment_position(0),
|
fwd_segment_position(0),
|
||||||
forward_travel_mode(TRAVEL_MODE_INACCESSIBLE),
|
forward_travel_mode(TRAVEL_MODE_INACCESSIBLE),
|
||||||
backward_travel_mode(TRAVEL_MODE_INACCESSIBLE)
|
backward_travel_mode(TRAVEL_MODE_INACCESSIBLE)
|
||||||
@ -105,6 +107,11 @@ bool PhantomNode::is_valid(const unsigned number_of_nodes) const
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PhantomNode::is_in_tiny_component() const
|
||||||
|
{
|
||||||
|
return component_id != 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool PhantomNode::is_valid() const
|
bool PhantomNode::is_valid() const
|
||||||
{
|
{
|
||||||
return location.is_valid() &&
|
return location.is_valid() &&
|
||||||
|
@ -39,7 +39,7 @@ struct PhantomNode
|
|||||||
{
|
{
|
||||||
PhantomNode(NodeID forward_node_id, NodeID reverse_node_id, unsigned name_id,
|
PhantomNode(NodeID forward_node_id, NodeID reverse_node_id, unsigned name_id,
|
||||||
int forward_weight, int reverse_weight, int forward_offset, int reverse_offset,
|
int forward_weight, int reverse_weight, int forward_offset, int reverse_offset,
|
||||||
unsigned packed_geometry_id, FixedPointCoordinate &location,
|
unsigned packed_geometry_id, unsigned component_id, FixedPointCoordinate &location,
|
||||||
unsigned short fwd_segment_position,
|
unsigned short fwd_segment_position,
|
||||||
TravelMode forward_travel_mode, TravelMode backward_travel_mode);
|
TravelMode forward_travel_mode, TravelMode backward_travel_mode);
|
||||||
|
|
||||||
@ -53,6 +53,7 @@ struct PhantomNode
|
|||||||
int forward_offset;
|
int forward_offset;
|
||||||
int reverse_offset;
|
int reverse_offset;
|
||||||
unsigned packed_geometry_id;
|
unsigned packed_geometry_id;
|
||||||
|
unsigned component_id;
|
||||||
FixedPointCoordinate location;
|
FixedPointCoordinate location;
|
||||||
unsigned short fwd_segment_position;
|
unsigned short fwd_segment_position;
|
||||||
TravelMode forward_travel_mode : 4;
|
TravelMode forward_travel_mode : 4;
|
||||||
@ -70,6 +71,8 @@ struct PhantomNode
|
|||||||
|
|
||||||
bool is_valid() const;
|
bool is_valid() const;
|
||||||
|
|
||||||
|
bool is_in_tiny_component() const;
|
||||||
|
|
||||||
bool operator==(const PhantomNode & other) const;
|
bool operator==(const PhantomNode & other) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -104,6 +107,7 @@ inline std::ostream& operator<<(std::ostream &out, const PhantomNode & pn)
|
|||||||
"fwd-o: " << pn.forward_offset << ", " <<
|
"fwd-o: " << pn.forward_offset << ", " <<
|
||||||
"rev-o: " << pn.reverse_offset << ", " <<
|
"rev-o: " << pn.reverse_offset << ", " <<
|
||||||
"geom: " << pn.packed_geometry_id << ", " <<
|
"geom: " << pn.packed_geometry_id << ", " <<
|
||||||
|
"comp: " << pn.component_id << ", " <<
|
||||||
"pos: " << pn.fwd_segment_position << ", " <<
|
"pos: " << pn.fwd_segment_position << ", " <<
|
||||||
"loc: " << pn.location;
|
"loc: " << pn.location;
|
||||||
return out;
|
return out;
|
||||||
|
@ -765,14 +765,14 @@ class StaticRTree
|
|||||||
const EdgeDataT & current_segment = current_query_node.node.template get<EdgeDataT>();
|
const EdgeDataT & current_segment = current_query_node.node.template get<EdgeDataT>();
|
||||||
|
|
||||||
// don't collect too many results from big components
|
// don't collect too many results from big components
|
||||||
if (number_of_results_found_in_big_cc == number_of_results &&
|
if (number_of_results_found_in_big_cc == number_of_results &&
|
||||||
current_segment.component_id == 0)
|
current_segment.component_id == 0)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// don't collect too many results from small components
|
// don't collect too many results from small components
|
||||||
if (number_of_results_found_in_tiny_cc == number_of_results &&
|
if (number_of_results_found_in_tiny_cc == number_of_results &&
|
||||||
current_segment.component_id != 0)
|
current_segment.component_id != 0)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@ -804,6 +804,7 @@ class StaticRTree
|
|||||||
current_segment.forward_offset,
|
current_segment.forward_offset,
|
||||||
current_segment.reverse_offset,
|
current_segment.reverse_offset,
|
||||||
current_segment.packed_geometry_id,
|
current_segment.packed_geometry_id,
|
||||||
|
current_segment.component_id,
|
||||||
foot_point_coordinate_on_segment,
|
foot_point_coordinate_on_segment,
|
||||||
current_segment.fwd_segment_position,
|
current_segment.fwd_segment_position,
|
||||||
current_segment.forward_travel_mode,
|
current_segment.forward_travel_mode,
|
||||||
|
Loading…
Reference in New Issue
Block a user