#7047: Nearest api returning node with id 0
This commit is contained in:
parent
becfd8a56d
commit
573f110492
@ -149,13 +149,23 @@ class NearestAPI final : public BaseAPI
|
|||||||
facade.GetOSMNodeIDOfNode(geometry(phantom_node.fwd_segment_position + 1));
|
facade.GetOSMNodeIDOfNode(geometry(phantom_node.fwd_segment_position + 1));
|
||||||
from_node = static_cast<std::uint64_t>(osm_node_id);
|
from_node = static_cast<std::uint64_t>(osm_node_id);
|
||||||
}
|
}
|
||||||
else if (phantom_node.forward_segment_id.enabled && phantom_node.fwd_segment_position > 0)
|
else if (phantom_node.forward_segment_id.enabled)
|
||||||
{
|
{
|
||||||
// In the case of one way, rely on forward segment only
|
// In the case of one way, rely on forward segment only
|
||||||
auto osm_node_id =
|
if (phantom_node.fwd_segment_position > 0)
|
||||||
facade.GetOSMNodeIDOfNode(forward_geometry(phantom_node.fwd_segment_position - 1));
|
{
|
||||||
|
auto osm_node_id = facade.GetOSMNodeIDOfNode(
|
||||||
|
forward_geometry(phantom_node.fwd_segment_position - 1));
|
||||||
from_node = static_cast<std::uint64_t>(osm_node_id);
|
from_node = static_cast<std::uint64_t>(osm_node_id);
|
||||||
}
|
}
|
||||||
|
else if (phantom_node.fwd_segment_position == 0)
|
||||||
|
{
|
||||||
|
auto osm_node_id = facade.GetOSMNodeIDOfNode(
|
||||||
|
forward_geometry(phantom_node.fwd_segment_position + 1));
|
||||||
|
from_node = to_node;
|
||||||
|
to_node = static_cast<std::uint64_t>(osm_node_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return std::make_pair(from_node, to_node);
|
return std::make_pair(from_node, to_node);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user