如何将请求分派和自动分配给最近的驱动程序

时间:2017-05-16 22:52:37

标签: algorithm

首先,我必须说我非常犹豫要发布以下内容,因为我担心会减少选票。但是,我花了几天时间考虑一个解决方案,但我还没有找到解决方案。我最后的希望是在这篇文章中得到一些答案。

问题

假设您有一个驱动程序的大型数据库实时连接到您的后端,而您每次 5秒获取他们的lat / long并将其发回到后端,以便您实时更新驾驶员的位置。让我们假设我们希望使形式驱动程序及其位置受益,让特定用户找到更紧密连接的驱动程序(如UBER,Lyft等)。

问题:

如何向这些驱动程序发送请求? (我希望你只和我分享你的想法和想法。)

1 个答案:

答案 0 :(得分:1)

您所看到的内容称为“地理空间搜索”。

如果您正在寻找要实施的算法,请查看Nearest Neighbour Search

最着名的算法是k-Nearest Neighbors算法。

如果您只对使用现有实施感兴趣并在其上构建应用程序,那么现有的数据库&搜索提供地理空间搜索功能的应用程序。

检查提供地理空间搜索功能的Apache Solr。 https://cwiki.apache.org/confluence/display/solr/Spatial+Search

您只需要将驱动程序的实时位置输入到此位置并使用当前位置查询。 Solr将负责寻找最近的司机,您将获得符合条件的搜索结果。

您可以将此作为使用基于位置的搜索构建应用的起点。在实践中,优步,Lyft和其他主要服务都有自己的内部应用程序和自定义实现。