bool LocateClosestEndPointForCoordinate(const FixedPointCoordinate &input_coordinate, FixedPointCoordinate &result, const unsigned zoom_level = 18) override final { if (!m_static_rtree.get() || CURRENT_TIMESTAMP != m_static_rtree->first) { LoadRTree(); } return m_static_rtree->second->LocateClosestEndPointForCoordinate(input_coordinate, result, zoom_level); }
std::pair<PhantomNode, PhantomNode> NearestPhantomNodeWithAlternativeFromBigComponent(const FixedPointCoordinate &input_coordinate, const int bearing = 0, const int bearing_range = 180) override final { if (!m_static_rtree.get() || CURRENT_TIMESTAMP != m_static_rtree->first) { LoadRTree(); BOOST_ASSERT(m_geospatial_query.get()); } return m_geospatial_query->NearestPhantomNodeWithAlternativeFromBigComponent(input_coordinate, bearing, bearing_range); }
bool IncrementalFindPhantomNodeForCoordinate(const FixedPointCoordinate &input_coordinate, std::vector<PhantomNode> &resulting_phantom_node_vector, const unsigned number_of_results) override final { if (!m_static_rtree.get() || CURRENT_TIMESTAMP != m_static_rtree->first) { LoadRTree(); } return m_static_rtree->second->IncrementalFindPhantomNodeForCoordinate( input_coordinate, resulting_phantom_node_vector, number_of_results); }
std::vector<PhantomNodeWithDistance> NearestPhantomNodes(const FixedPointCoordinate &input_coordinate, const unsigned max_results, const int bearing = 0, const int bearing_range = 180) override final { if (!m_static_rtree.get() || CURRENT_TIMESTAMP != m_static_rtree->first) { LoadRTree(); BOOST_ASSERT(m_geospatial_query.get()); } return m_geospatial_query->NearestPhantomNodes(input_coordinate, max_results, bearing, bearing_range); }
bool IncrementalFindPhantomNodeForCoordinateWithMaxDistance( const FixedPointCoordinate &input_coordinate, std::vector<std::pair<PhantomNode, double>> &resulting_phantom_node_vector, const double max_distance, const unsigned min_number_of_phantom_nodes, const unsigned max_number_of_phantom_nodes) override final { if (!m_static_rtree.get() || CURRENT_TIMESTAMP != m_static_rtree->first) { LoadRTree(); } return m_static_rtree->second->IncrementalFindPhantomNodeForCoordinateWithDistance( input_coordinate, resulting_phantom_node_vector, max_distance, min_number_of_phantom_nodes, max_number_of_phantom_nodes); }